Merge "Filter roots based on incoming request." into klp-dev
diff --git a/api/current.txt b/api/current.txt
index 095b437..7fbc484 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -25,6 +25,7 @@
     field public static final java.lang.String BIND_NFC_SERVICE = "android.permission.BIND_NFC_SERVICE";
     field public static final java.lang.String BIND_NOTIFICATION_LISTENER_SERVICE = "android.permission.BIND_NOTIFICATION_LISTENER_SERVICE";
     field public static final java.lang.String BIND_PRINT_SERVICE = "android.permission.BIND_PRINT_SERVICE";
+    field public static final java.lang.String BIND_PRINT_SPOOLER_SERVICE = "android.permission.BIND_PRINT_SPOOLER_SERVICE";
     field public static final java.lang.String BIND_REMOTEVIEWS = "android.permission.BIND_REMOTEVIEWS";
     field public static final java.lang.String BIND_TEXT_SERVICE = "android.permission.BIND_TEXT_SERVICE";
     field public static final java.lang.String BIND_VPN_SERVICE = "android.permission.BIND_VPN_SERVICE";
@@ -867,6 +868,7 @@
     field public static final int reqKeyboardType = 16843304; // 0x1010228
     field public static final int reqNavigation = 16843306; // 0x101022a
     field public static final int reqTouchScreen = 16843303; // 0x1010227
+    field public static final int requireDeviceUnlock = 16843754; // 0x10103ea
     field public static final int required = 16843406; // 0x101028e
     field public static final int requiredAccountType = 16843734; // 0x10103d6
     field public static final int requiredForAllUsers = 16843728; // 0x10103d0
@@ -5734,7 +5736,6 @@
     method public final android.os.Bundle call(android.net.Uri, java.lang.String, java.lang.String, android.os.Bundle);
     method public deprecated void cancelSync(android.net.Uri);
     method public static void cancelSync(android.accounts.Account, java.lang.String);
-    method public static void cancelSync(android.content.SyncRequest);
     method public final int delete(android.net.Uri, java.lang.String, java.lang.String[]);
     method public static deprecated android.content.SyncInfo getCurrentSync();
     method public static java.util.List<android.content.SyncInfo> getCurrentSyncs();
@@ -5955,6 +5956,7 @@
     field public static final int BIND_WAIVE_PRIORITY = 32; // 0x20
     field public static final java.lang.String BLUETOOTH_SERVICE = "bluetooth";
     field public static final java.lang.String CAMERA_SERVICE = "camera";
+    field public static final java.lang.String CAPTIONING_SERVICE = "captioning";
     field public static final java.lang.String CLIPBOARD_SERVICE = "clipboard";
     field public static final java.lang.String CONNECTIVITY_SERVICE = "connectivity";
     field public static final int CONTEXT_IGNORE_SECURITY = 2; // 0x2
@@ -6713,9 +6715,7 @@
     field public final android.accounts.Account account;
     field public final java.lang.String authority;
     field public final android.os.Bundle extras;
-    field public final boolean isService;
     field public final long period;
-    field public final android.content.ComponentName service;
   }
 
   public class ReceiverCallNotAllowedException extends android.util.AndroidRuntimeException {
@@ -6836,7 +6836,6 @@
 
   public class SyncRequest implements android.os.Parcelable {
     method public int describeContents();
-    method public boolean isExpedited();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator CREATOR;
   }
@@ -6844,18 +6843,15 @@
   public static class SyncRequest.Builder {
     ctor public SyncRequest.Builder();
     method public android.content.SyncRequest build();
-    method public android.content.SyncRequest.Builder setAllowMetered(boolean);
+    method public android.content.SyncRequest.Builder setDisallowMetered(boolean);
     method public android.content.SyncRequest.Builder setExpedited(boolean);
     method public android.content.SyncRequest.Builder setExtras(android.os.Bundle);
     method public android.content.SyncRequest.Builder setIgnoreBackoff(boolean);
     method public android.content.SyncRequest.Builder setIgnoreSettings(boolean);
     method public android.content.SyncRequest.Builder setManual(boolean);
     method public android.content.SyncRequest.Builder setNoRetry(boolean);
-    method public android.content.SyncRequest.Builder setPriority(int);
     method public android.content.SyncRequest.Builder setSyncAdapter(android.accounts.Account, java.lang.String);
-    method public android.content.SyncRequest.Builder setSyncAdapter(android.content.ComponentName);
-    method public android.content.SyncRequest.Builder setTransferSize(long, long);
-    method public android.content.SyncRequest.Builder syncOnce(long, long);
+    method public android.content.SyncRequest.Builder syncOnce();
     method public android.content.SyncRequest.Builder syncPeriodic(long, long);
   }
 
@@ -6882,12 +6878,6 @@
     field public boolean tooManyRetries;
   }
 
-  public abstract class SyncService extends android.app.Service {
-    ctor public SyncService();
-    method public android.os.IBinder onBind(android.content.Intent);
-    method public abstract void onPerformSync(android.os.Bundle, android.content.SyncResult);
-  }
-
   public class SyncStats implements android.os.Parcelable {
     ctor public SyncStats();
     ctor public SyncStats(android.os.Parcel);
@@ -7328,7 +7318,7 @@
     field public static final java.lang.String FEATURE_LOCATION_NETWORK = "android.hardware.location.network";
     field public static final java.lang.String FEATURE_MICROPHONE = "android.hardware.microphone";
     field public static final java.lang.String FEATURE_NFC = "android.hardware.nfc";
-    field public static final java.lang.String FEATURE_NFC_HCE = "android.hardware.nfc.hce";
+    field public static final java.lang.String FEATURE_NFC_HOST_CARD_EMULATION = "android.hardware.nfc.hce";
     field public static final java.lang.String FEATURE_SCREEN_LANDSCAPE = "android.hardware.screen.landscape";
     field public static final java.lang.String FEATURE_SCREEN_PORTRAIT = "android.hardware.screen.portrait";
     field public static final java.lang.String FEATURE_SENSOR_ACCELEROMETER = "android.hardware.sensor.accelerometer";
@@ -15189,8 +15179,10 @@
   public final class NfcAdapter {
     method public void disableForegroundDispatch(android.app.Activity);
     method public deprecated void disableForegroundNdefPush(android.app.Activity);
+    method public void disableReaderMode(android.app.Activity);
     method public void enableForegroundDispatch(android.app.Activity, android.app.PendingIntent, android.content.IntentFilter[], java.lang.String[][]);
     method public deprecated void enableForegroundNdefPush(android.app.Activity, android.nfc.NdefMessage);
+    method public void enableReaderMode(android.app.Activity, int);
     method public static android.nfc.NfcAdapter getDefaultAdapter(android.content.Context);
     method public boolean isEnabled();
     method public boolean isNdefPushEnabled();
@@ -15207,6 +15199,12 @@
     field public static final java.lang.String EXTRA_ID = "android.nfc.extra.ID";
     field public static final java.lang.String EXTRA_NDEF_MESSAGES = "android.nfc.extra.NDEF_MESSAGES";
     field public static final java.lang.String EXTRA_TAG = "android.nfc.extra.TAG";
+    field public static final int FLAG_READER_KOVIO = 16; // 0x10
+    field public static final int FLAG_READER_NFC_A = 1; // 0x1
+    field public static final int FLAG_READER_NFC_B = 2; // 0x2
+    field public static final int FLAG_READER_NFC_F = 4; // 0x4
+    field public static final int FLAG_READER_NFC_V = 8; // 0x8
+    field public static final int FLAG_READER_SKIP_NDEF_CHECK = 128; // 0x80
     field public static final int STATE_OFF = 1; // 0x1
     field public static final int STATE_ON = 3; // 0x3
     field public static final int STATE_TURNING_OFF = 4; // 0x4
@@ -15252,6 +15250,7 @@
 
   public final class CardEmulationManager {
     method public static synchronized android.nfc.cardemulation.CardEmulationManager getInstance(android.nfc.NfcAdapter);
+    method public int getSelectionModeForCategory(java.lang.String);
     method public boolean isDefaultServiceForAid(android.content.ComponentName, java.lang.String);
     method public boolean isDefaultServiceForCategory(android.content.ComponentName, java.lang.String);
     field public static final java.lang.String ACTION_CHANGE_DEFAULT = "android.nfc.cardemulation.ACTION_CHANGE_DEFAULT";
@@ -15259,6 +15258,9 @@
     field public static final java.lang.String CATEGORY_PAYMENT = "payment";
     field public static final java.lang.String EXTRA_CATEGORY = "category";
     field public static final java.lang.String EXTRA_SERVICE_COMPONENT = "component";
+    field public static final int SELECTION_MODE_ALWAYS_ASK = 1; // 0x1
+    field public static final int SELECTION_MODE_ASK_IF_CONFLICT = 2; // 0x2
+    field public static final int SELECTION_MODE_PREFER_DEFAULT = 0; // 0x0
   }
 
   public abstract class HostApduService extends android.app.Service {
@@ -19009,6 +19011,7 @@
 package android.print {
 
   public final class PageRange implements android.os.Parcelable {
+    ctor public PageRange(int, int);
     method public int describeContents();
     method public int getEnd();
     method public int getStart();
@@ -19036,8 +19039,9 @@
     field public static final int DUPLEX_MODE_LONG_EDGE = 2; // 0x2
     field public static final int DUPLEX_MODE_NONE = 1; // 0x1
     field public static final int DUPLEX_MODE_SHORT_EDGE = 4; // 0x4
-    field public static final int FITTING_MODE_FIT_TO_PAGE = 2; // 0x2
     field public static final int FITTING_MODE_NONE = 1; // 0x1
+    field public static final int FITTING_MODE_SCALE_TO_FILL = 4; // 0x4
+    field public static final int FITTING_MODE_SCALE_TO_FIT = 2; // 0x2
     field public static final int ORIENTATION_LANDSCAPE = 2; // 0x2
     field public static final int ORIENTATION_PORTRAIT = 1; // 0x1
   }
@@ -19062,6 +19066,7 @@
     method public int getLeftMils();
     method public int getRightMils();
     method public int getTopMils();
+    field public static final android.print.PrintAttributes.Margins NO_MARGINS;
   }
 
   public static final class PrintAttributes.MediaSize {
@@ -19131,7 +19136,7 @@
     method public void onFinish();
     method public abstract void onLayout(android.print.PrintAttributes, android.print.PrintAttributes, android.os.CancellationSignal, android.print.PrintDocumentAdapter.LayoutResultCallback, android.os.Bundle);
     method public void onStart();
-    method public abstract void onWrite(android.print.PageRange[], java.io.FileDescriptor, android.os.CancellationSignal, android.print.PrintDocumentAdapter.WriteResultCallback);
+    method public abstract void onWrite(android.print.PageRange[], android.os.ParcelFileDescriptor, android.os.CancellationSignal, android.print.PrintDocumentAdapter.WriteResultCallback);
     field public static final java.lang.String METADATA_KEY_PRINT_PREVIEW = "KEY_METADATA_PRINT_PREVIEW";
   }
 
@@ -19149,28 +19154,41 @@
 
   public final class PrintDocumentInfo implements android.os.Parcelable {
     method public int describeContents();
+    method public int getColorMode();
     method public int getContentType();
+    method public long getDataSize();
+    method public int getFittingMode();
+    method public android.print.PrintAttributes.Margins getMargins();
+    method public android.print.PrintAttributes.MediaSize getMediaSize();
     method public java.lang.String getName();
+    method public int getOrientation();
     method public int getPageCount();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final int CONTENT_TYPE_DOCUMENT = 0; // 0x0
     field public static final int CONTENT_TYPE_PHOTO = 1; // 0x1
     field public static final int CONTENT_TYPE_UNKNOWN = -1; // 0xffffffff
     field public static final android.os.Parcelable.Creator CREATOR;
+    field public static final android.print.PrintAttributes.MediaSize MEDIA_SIZE_UNKNOWN;
     field public static final int PAGE_COUNT_UNKNOWN = -1; // 0xffffffff
   }
 
   public static final class PrintDocumentInfo.Builder {
+    ctor public PrintDocumentInfo.Builder(java.lang.String, android.print.PrintAttributes);
     ctor public PrintDocumentInfo.Builder(java.lang.String);
     method public android.print.PrintDocumentInfo create();
+    method public android.print.PrintDocumentInfo.Builder setColorMode(int);
     method public android.print.PrintDocumentInfo.Builder setContentType(int);
+    method public android.print.PrintDocumentInfo.Builder setFittingMode(int);
+    method public android.print.PrintDocumentInfo.Builder setMargins(android.print.PrintAttributes.Margins);
+    method public android.print.PrintDocumentInfo.Builder setMediaSize(android.print.PrintAttributes.MediaSize);
+    method public android.print.PrintDocumentInfo.Builder setOrientation(int);
     method public android.print.PrintDocumentInfo.Builder setPageCount(int);
   }
 
   public class PrintFileDocumentAdapter extends android.print.PrintDocumentAdapter {
     ctor public PrintFileDocumentAdapter(android.content.Context, java.io.File, android.print.PrintDocumentInfo);
     method public void onLayout(android.print.PrintAttributes, android.print.PrintAttributes, android.os.CancellationSignal, android.print.PrintDocumentAdapter.LayoutResultCallback, android.os.Bundle);
-    method public void onWrite(android.print.PageRange[], java.io.FileDescriptor, android.os.CancellationSignal, android.print.PrintDocumentAdapter.WriteResultCallback);
+    method public void onWrite(android.print.PageRange[], android.os.ParcelFileDescriptor, android.os.CancellationSignal, android.print.PrintDocumentAdapter.WriteResultCallback);
   }
 
   public final class PrintJob {
@@ -19192,9 +19210,10 @@
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator CREATOR;
     field public static final int PRINT_JOB_ID_UNDEFINED = -1; // 0xffffffff
-    field public static final int STATE_CANCELED = 6; // 0x6
-    field public static final int STATE_COMPLETED = 4; // 0x4
-    field public static final int STATE_FAILED = 5; // 0x5
+    field public static final int STATE_BLOCKED = 4; // 0x4
+    field public static final int STATE_CANCELED = 7; // 0x7
+    field public static final int STATE_COMPLETED = 5; // 0x5
+    field public static final int STATE_FAILED = 6; // 0x6
     field public static final int STATE_QUEUED = 2; // 0x2
     field public static final int STATE_STARTED = 3; // 0x3
   }
@@ -19251,7 +19270,9 @@
     method public int getStatus();
     method public void writeToParcel(android.os.Parcel, int);
     field public static final android.os.Parcelable.Creator CREATOR;
-    field public static final int STATUS_READY = 1; // 0x1
+    field public static final int STATUS_BUSY = 2; // 0x2
+    field public static final int STATUS_IDLE = 1; // 0x1
+    field public static final int STATUS_UNAVAILABLE = 3; // 0x3
   }
 
   public static final class PrinterInfo.Builder {
@@ -19261,6 +19282,7 @@
     method public android.print.PrinterInfo.Builder setCapabilities(android.print.PrinterCapabilitiesInfo);
     method public android.print.PrinterInfo.Builder setDescription(java.lang.String);
     method public android.print.PrinterInfo.Builder setName(java.lang.String);
+    method public android.print.PrinterInfo.Builder setStatus(int);
   }
 
 }
@@ -19283,35 +19305,45 @@
 
   public static final class PdfDocument.PageInfo {
     method public android.graphics.Rect getContentSize();
-    method public int getDesity();
     method public android.graphics.Matrix getInitialTransform();
     method public int getPageNumber();
     method public android.graphics.Rect getPageSize();
   }
 
   public static final class PdfDocument.PageInfo.Builder {
-    ctor public PdfDocument.PageInfo.Builder(android.graphics.Rect, int, int);
+    ctor public PdfDocument.PageInfo.Builder(android.graphics.Rect, int);
     method public android.print.pdf.PdfDocument.PageInfo create();
     method public android.print.pdf.PdfDocument.PageInfo.Builder setContentSize(android.graphics.Rect);
     method public android.print.pdf.PdfDocument.PageInfo.Builder setInitialTransform(android.graphics.Matrix);
   }
 
+  public final class PrintedPdfDocument {
+    method public void close();
+    method public void finishPage(android.print.pdf.PdfDocument.Page);
+    method public java.util.List<android.print.pdf.PdfDocument.PageInfo> getPages();
+    method public static android.print.pdf.PrintedPdfDocument open(android.content.Context, android.print.PrintAttributes);
+    method public android.print.pdf.PdfDocument.Page startPage(int);
+    method public void writeTo(java.io.OutputStream);
+  }
+
 }
 
 package android.printservice {
 
   public final class PrintDocument {
-    method public java.io.FileDescriptor getData();
+    method public android.os.ParcelFileDescriptor getData();
     method public android.print.PrintDocumentInfo getInfo();
   }
 
   public final class PrintJob {
+    method public boolean block(java.lang.String);
     method public boolean cancel();
     method public boolean complete();
     method public boolean fail(java.lang.String);
     method public android.printservice.PrintDocument getDocument();
     method public int getId();
     method public android.print.PrintJobInfo getInfo();
+    method public boolean isBlocked();
     method public boolean isCancelled();
     method public boolean isCompleted();
     method public boolean isFailed();
@@ -19343,9 +19375,11 @@
     method public final boolean isDestroyed();
     method public final boolean isPrinterDiscoveryStarted();
     method public abstract void onDestroy();
-    method public abstract void onRequestPrinterUpdate(android.print.PrinterId);
     method public abstract void onStartPrinterDiscovery(java.util.List<android.print.PrinterId>);
+    method public abstract void onStartPrinterStateTracking(android.print.PrinterId);
     method public abstract void onStopPrinterDiscovery();
+    method public abstract void onStopPrinterStateTracking(android.print.PrinterId);
+    method public abstract void onValidatePrinters(java.util.List<android.print.PrinterId>);
     method public final void removePrinters(java.util.List<android.print.PrinterId>);
     method public final void updatePrinters(java.util.List<android.print.PrinterInfo>);
   }
@@ -19358,8 +19392,8 @@
     ctor public AlarmClock();
     field public static final java.lang.String ACTION_SET_ALARM = "android.intent.action.SET_ALARM";
     field public static final java.lang.String ACTION_SET_TIMER = "android.intent.action.SET_TIMER";
+    field public static final java.lang.String ACTION_SHOW_ALARMS = "android.intent.action.SHOW_ALARMS";
     field public static final java.lang.String EXTRA_DAYS = "android.intent.extra.alarm.DAYS";
-    field public static final java.lang.String EXTRA_DELETE_AFTER_USE = "android.intent.extra.alarm.DELETE_AFTER_USE";
     field public static final java.lang.String EXTRA_HOUR = "android.intent.extra.alarm.HOUR";
     field public static final java.lang.String EXTRA_LENGTH = "android.intent.extra.alarm.LENGTH";
     field public static final java.lang.String EXTRA_MESSAGE = "android.intent.extra.alarm.MESSAGE";
@@ -21211,6 +21245,7 @@
     field public static final java.lang.String ACTION_APPLICATION_DEVELOPMENT_SETTINGS = "android.settings.APPLICATION_DEVELOPMENT_SETTINGS";
     field public static final java.lang.String ACTION_APPLICATION_SETTINGS = "android.settings.APPLICATION_SETTINGS";
     field public static final java.lang.String ACTION_BLUETOOTH_SETTINGS = "android.settings.BLUETOOTH_SETTINGS";
+    field public static final java.lang.String ACTION_CAPTIONING_SETTINGS = "android.settings.CAPTIONING_SETTINGS";
     field public static final java.lang.String ACTION_DATA_ROAMING_SETTINGS = "android.settings.DATA_ROAMING_SETTINGS";
     field public static final java.lang.String ACTION_DATE_SETTINGS = "android.settings.DATE_SETTINGS";
     field public static final java.lang.String ACTION_DEVICE_INFO_SETTINGS = "android.settings.DEVICE_INFO_SETTINGS";
@@ -21679,6 +21714,7 @@
     method public deprecated synchronized void resize(int);
     method public void setFromFieldPacker(int, android.renderscript.FieldPacker);
     method public void setFromFieldPacker(int, int, android.renderscript.FieldPacker);
+    method public void setOnBufferAvailableListener(android.renderscript.Allocation.OnBufferAvailableListener);
     method public void setSurface(android.view.Surface);
     method public void syncAll(int);
     field public static final int USAGE_GRAPHICS_CONSTANTS = 8; // 0x8
@@ -21699,6 +21735,10 @@
     enum_constant public static final android.renderscript.Allocation.MipmapControl MIPMAP_ON_SYNC_TO_TEXTURE;
   }
 
+  public static abstract interface Allocation.OnBufferAvailableListener {
+    method public abstract void onBufferAvailable(android.renderscript.Allocation);
+  }
+
   public class AllocationAdapter extends android.renderscript.Allocation {
     method public static android.renderscript.AllocationAdapter create1D(android.renderscript.RenderScript, android.renderscript.Allocation);
     method public static android.renderscript.AllocationAdapter create2D(android.renderscript.RenderScript, android.renderscript.Allocation);
@@ -22348,7 +22388,7 @@
   }
 
   public final class ScriptIntrinsicColorMatrix extends android.renderscript.ScriptIntrinsic {
-    method public static android.renderscript.ScriptIntrinsicColorMatrix create(android.renderscript.RenderScript, android.renderscript.Element);
+    method public static deprecated android.renderscript.ScriptIntrinsicColorMatrix create(android.renderscript.RenderScript, android.renderscript.Element);
     method public static android.renderscript.ScriptIntrinsicColorMatrix create(android.renderscript.RenderScript);
     method public void forEach(android.renderscript.Allocation, android.renderscript.Allocation);
     method public android.renderscript.Script.KernelID getKernelID();
@@ -22382,9 +22422,9 @@
   public final class ScriptIntrinsicHistogram extends android.renderscript.ScriptIntrinsic {
     method public static android.renderscript.ScriptIntrinsicHistogram create(android.renderscript.RenderScript, android.renderscript.Element);
     method public void forEach(android.renderscript.Allocation);
-    method public void forEach_dot(android.renderscript.Allocation);
+    method public void forEach_Dot(android.renderscript.Allocation);
     method public android.renderscript.Script.FieldID getFieldID_Input();
-    method public android.renderscript.Script.KernelID getKernelID_seperate();
+    method public android.renderscript.Script.KernelID getKernelID_Separate();
     method public void setDotCoefficients(float, float, float, float);
     method public void setOutput(android.renderscript.Allocation);
   }
@@ -25701,7 +25741,7 @@
     method public android.util.JsonWriter value(java.lang.Number) throws java.io.IOException;
   }
 
-  public abstract interface LayoutDirection {
+  public final class LayoutDirection {
     field public static final int INHERIT = 2; // 0x2
     field public static final int LOCALE = 3; // 0x3
     field public static final int LTR = 0; // 0x0
@@ -27793,9 +27833,9 @@
     field public static final int SOUND_EFFECTS_ENABLED = 134217728; // 0x8000000
     field public static final deprecated int STATUS_BAR_HIDDEN = 1; // 0x1
     field public static final deprecated int STATUS_BAR_VISIBLE = 0; // 0x0
-    field public static final int SYSTEM_UI_FLAG_ALLOW_TRANSIENT = 2048; // 0x800
     field public static final int SYSTEM_UI_FLAG_FULLSCREEN = 4; // 0x4
     field public static final int SYSTEM_UI_FLAG_HIDE_NAVIGATION = 2; // 0x2
+    field public static final int SYSTEM_UI_FLAG_IMMERSIVE = 2048; // 0x800
     field public static final int SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN = 1024; // 0x400
     field public static final int SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION = 512; // 0x200
     field public static final int SYSTEM_UI_FLAG_LAYOUT_STABLE = 256; // 0x100
@@ -28916,15 +28956,15 @@
   }
 
   public class CaptioningManager {
-    ctor public CaptioningManager();
-    method public static final float getFontSize(android.content.ContentResolver);
-    method public static final java.util.Locale getLocale(android.content.ContentResolver);
-    method public static final boolean isEnabled(android.content.ContentResolver);
-    field public static final java.lang.String ACTION_CAPTIONING_SETTINGS = "android.settings.CAPTIONING_SETTINGS";
+    method public void addCaptioningStateChangeListener(android.view.accessibility.CaptioningManager.CaptioningChangeListener);
+    method public final float getFontScale();
+    method public final java.util.Locale getLocale();
+    method public android.view.accessibility.CaptioningManager.CaptionStyle getUserStyle();
+    method public final boolean isEnabled();
+    method public void removeCaptioningStateChangeListener(android.view.accessibility.CaptioningManager.CaptioningChangeListener);
   }
 
   public static final class CaptioningManager.CaptionStyle {
-    method public static android.view.accessibility.CaptioningManager.CaptionStyle defaultUserStyle(android.content.ContentResolver);
     method public android.graphics.Typeface getTypeface();
     field public static final int EDGE_TYPE_DROP_SHADOW = 2; // 0x2
     field public static final int EDGE_TYPE_NONE = 0; // 0x0
@@ -28935,6 +28975,14 @@
     field public final int foregroundColor;
   }
 
+  public abstract class CaptioningManager.CaptioningChangeListener {
+    ctor public CaptioningManager.CaptioningChangeListener();
+    method public void onEnabledChanged(boolean);
+    method public void onFontScaleChanged(float);
+    method public void onLocaleChanged(java.util.Locale);
+    method public void onUserStyleChanged(android.view.accessibility.CaptioningManager.CaptionStyle);
+  }
+
 }
 
 package android.view.animation {
@@ -30353,6 +30401,7 @@
     method protected void layoutChildren();
     method public void onFilterComplete(int);
     method public void onGlobalLayout();
+    method public void onInitializeAccessibilityNodeInfoForItem(android.view.View, int, android.view.accessibility.AccessibilityNodeInfo);
     method public boolean onRemoteAdapterConnected();
     method public void onRemoteAdapterDisconnected();
     method public void onRestoreInstanceState(android.os.Parcelable);
@@ -31117,7 +31166,6 @@
     method public int getAlignmentMode();
     method public int getColumnCount();
     method public int getOrientation();
-    method public android.util.Printer getPrinter();
     method public int getRowCount();
     method public boolean getUseDefaultMargins();
     method public boolean isColumnOrderPreserved();
@@ -31127,7 +31175,6 @@
     method public void setColumnCount(int);
     method public void setColumnOrderPreserved(boolean);
     method public void setOrientation(int);
-    method public void setPrinter(android.util.Printer);
     method public void setRowCount(int);
     method public void setRowOrderPreserved(boolean);
     method public void setUseDefaultMargins(boolean);
@@ -31365,6 +31412,7 @@
     ctor public ListPopupWindow(android.content.Context, android.util.AttributeSet, int);
     ctor public ListPopupWindow(android.content.Context, android.util.AttributeSet, int, int);
     method public void clearListSelection();
+    method public android.view.View.OnTouchListener createDragToOpenListener(android.view.View);
     method public void dismiss();
     method public android.view.View getAnchorView();
     method public int getAnimationStyle();
@@ -31576,6 +31624,7 @@
   public class PopupMenu {
     ctor public PopupMenu(android.content.Context, android.view.View);
     method public void dismiss();
+    method public android.view.View.OnTouchListener getDragToOpenListener();
     method public android.view.Menu getMenu();
     method public android.view.MenuInflater getMenuInflater();
     method public void inflate(int);
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index cdec399..f10290d 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -105,6 +105,7 @@
 import android.view.Display;
 import android.view.WindowManagerImpl;
 import android.view.accessibility.AccessibilityManager;
+import android.view.accessibility.CaptioningManager;
 import android.view.inputmethod.InputMethodManager;
 import android.view.textservice.TextServicesManager;
 import android.accounts.AccountManager;
@@ -307,6 +308,11 @@
                     return AccessibilityManager.getInstance(ctx);
                 }});
 
+        registerService(CAPTIONING_SERVICE, new ServiceFetcher() {
+                public Object getService(ContextImpl ctx) {
+                    return new CaptioningManager(ctx);
+                }});
+
         registerService(ACCOUNT_SERVICE, new ServiceFetcher() {
                 public Object createService(ContextImpl ctx) {
                     IBinder b = ServiceManager.getService(ACCOUNT_SERVICE);
diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java
index a761a89..8a5a56c 100644
--- a/core/java/android/content/ContentResolver.java
+++ b/core/java/android/content/ContentResolver.java
@@ -141,7 +141,7 @@
     public static final String SYNC_EXTRAS_PRIORITY = "sync_priority";
 
     /** {@hide} Flag to allow sync to occur on metered network. */
-    public static final String SYNC_EXTRAS_ALLOW_METERED = "allow_metered";
+    public static final String SYNC_EXTRAS_DISALLOW_METERED = "disallow_metered";
 
     /**
      * Set by the SyncManager to request that the SyncAdapter initialize itself for
@@ -1669,7 +1669,7 @@
             new SyncRequest.Builder()
                 .setSyncAdapter(account, authority)
                 .setExtras(extras)
-                .syncOnce(0, 0)     // Immediate sync.
+                .syncOnce()
                 .build();
         requestSync(request);
     }
@@ -1677,6 +1677,9 @@
     /**
      * Register a sync with the SyncManager. These requests are built using the
      * {@link SyncRequest.Builder}.
+     *
+     * @param request The immutable SyncRequest object containing the sync parameters. Use
+     * {@link SyncRequest.Builder} to construct these.
      */
     public static void requestSync(SyncRequest request) {
         try {
@@ -1812,6 +1815,9 @@
      * {@link #SYNC_EXTRAS_INITIALIZE}, {@link #SYNC_EXTRAS_FORCE},
      * {@link #SYNC_EXTRAS_EXPEDITED}, {@link #SYNC_EXTRAS_MANUAL} set to true.
      * If any are supplied then an {@link IllegalArgumentException} will be thrown.
+     * <p>As of API level 19 this function introduces a default flexibility of ~4% (up to a maximum
+     * of one hour in the day) into the requested period. Use
+     * {@link SyncRequest.Builder#syncPeriodic(long, long)} to set this flexibility manually.
      *
      * <p>This method requires the caller to hold the permission
      * {@link android.Manifest.permission#WRITE_SYNC_SETTINGS}.
@@ -1875,22 +1881,6 @@
     }
 
     /**
-     * Remove the specified sync. This will remove any syncs that have been scheduled to run, but
-     * will not cancel any running syncs.
-     * <p>This method requires the caller to hold the permission</p>
-     * If the request is for a periodic sync this will cancel future occurrences of the sync.
-     *
-     * It is possible to cancel a sync using a SyncRequest object that is different from the object
-     * with which you requested the sync. Do so by building a SyncRequest with exactly the same
-     * service/adapter, frequency, <b>and</b> extras bundle.
-     *
-     * @param request SyncRequest object containing information about sync to cancel.
-     */
-    public static void cancelSync(SyncRequest request) {
-        // TODO: Finish this implementation.
-    }
-
-    /**
      * Get the list of information about the periodic syncs for the given account and authority.
      * <p>This method requires the caller to hold the permission
      * {@link android.Manifest.permission#READ_SYNC_SETTINGS}.
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index cd1f87b..2ff9182 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -2011,6 +2011,17 @@
 
     /**
      * Use with {@link #getSystemService} to retrieve a
+     * {@link android.view.accessibility.CaptioningManager} for obtaining
+     * captioning properties and listening for changes in captioning
+     * preferences.
+     *
+     * @see #getSystemService
+     * @see android.view.accessibility.CaptioningManager
+     */
+    public static final String CAPTIONING_SERVICE = "captioning";
+
+    /**
+     * Use with {@link #getSystemService} to retrieve a
      * {@link android.app.NotificationManager} for controlling keyguard.
      *
      * @see #getSystemService
diff --git a/core/java/android/content/PeriodicSync.java b/core/java/android/content/PeriodicSync.java
index 6aca151..b586eec 100644
--- a/core/java/android/content/PeriodicSync.java
+++ b/core/java/android/content/PeriodicSync.java
@@ -29,17 +29,13 @@
     public final Account account;
     /** The authority of the sync. Can be null. */
     public final String authority;
-    /** The service for syncing, if this is an anonymous sync. Can be null.*/
-    public final ComponentName service;
     /** Any extras that parameters that are to be passed to the sync adapter. */
     public final Bundle extras;
     /** How frequently the sync should be scheduled, in seconds. Kept around for API purposes. */
     public final long period;
-    /** Whether this periodic sync uses a service. */
-    public final boolean isService;
     /**
-     * How much flexibility can be taken in scheduling the sync, in seconds.
      * {@hide}
+     * How much flexibility can be taken in scheduling the sync, in seconds.
      */
     public final long flexTime;
 
@@ -52,76 +48,44 @@
     public PeriodicSync(Account account, String authority, Bundle extras, long periodInSeconds) {
         this.account = account;
         this.authority = authority;
-        this.service = null;
-        this.isService = false;
         if (extras == null) {
             this.extras = new Bundle();
         } else {
             this.extras = new Bundle(extras);
         }
         this.period = periodInSeconds;
-        // Old API uses default flex time. No-one should be using this ctor anyway.
+        // Initialise to a sane value.
         this.flexTime = 0L;
     }
 
-    // TODO: Add copy ctor from SyncRequest?
-
     /**
-     * Create a copy of a periodic sync.
      * {@hide}
+     * Create a copy of a periodic sync.
      */
     public PeriodicSync(PeriodicSync other) {
         this.account = other.account;
         this.authority = other.authority;
-        this.service = other.service;
-        this.isService = other.isService;
         this.extras = new Bundle(other.extras);
         this.period = other.period;
         this.flexTime = other.flexTime;
     }
 
     /**
-     * A PeriodicSync for a sync with a specified provider.
      * {@hide}
+     * A PeriodicSync for a sync with a specified provider.
      */
     public PeriodicSync(Account account, String authority, Bundle extras,
             long period, long flexTime) {
         this.account = account;
         this.authority = authority;
-        this.service = null;
-        this.isService = false;
-        this.extras = new Bundle(extras);
-        this.period = period;
-        this.flexTime = flexTime;
-    }
-
-    /**
-     * A PeriodicSync for a sync with a specified SyncService.
-     * {@hide}
-     */
-    public PeriodicSync(ComponentName service, Bundle extras,
-            long period,
-            long flexTime) {
-        this.account = null;
-        this.authority = null;
-        this.service = service;
-        this.isService = true;
         this.extras = new Bundle(extras);
         this.period = period;
         this.flexTime = flexTime;
     }
 
     private PeriodicSync(Parcel in) {
-        this.isService = (in.readInt() != 0);
-        if (this.isService) {
-            this.service = in.readParcelable(null);
-            this.account = null;
-            this.authority = null;
-        } else {
-            this.account = in.readParcelable(null);
-            this.authority = in.readString();
-            this.service = null;
-        }
+        this.account = in.readParcelable(null);
+        this.authority = in.readString();
         this.extras = in.readBundle();
         this.period = in.readLong();
         this.flexTime = in.readLong();
@@ -134,13 +98,8 @@
 
     @Override
     public void writeToParcel(Parcel dest, int flags) {
-        dest.writeInt(isService ? 1 : 0);
-        if (account == null && authority == null) {
-            dest.writeParcelable(service, flags);
-        } else {
-            dest.writeParcelable(account, flags);
-            dest.writeString(authority);
-        }
+        dest.writeParcelable(account, flags);
+        dest.writeString(authority);
         dest.writeBundle(extras);
         dest.writeLong(period);
         dest.writeLong(flexTime);
@@ -167,17 +126,8 @@
             return false;
         }
         final PeriodicSync other = (PeriodicSync) o;
-        if (this.isService != other.isService) {
-            return false;
-        }
-        boolean equal = false;
-        if (this.isService) {
-            equal = service.equals(other.service);
-        } else {
-            equal = account.equals(other.account)
-                    && authority.equals(other.authority);
-        }
-        return equal
+        return account.equals(other.account)
+            && authority.equals(other.authority)
             && period == other.period
             && syncExtrasEquals(extras, other.extras);
     }
@@ -208,7 +158,6 @@
     public String toString() {
         return "account: " + account +
                ", authority: " + authority +
-               ", service: " + service +
                ". period: " + period + "s " +
                ", flex: " + flexTime;
     }
diff --git a/core/java/android/content/SyncRequest.java b/core/java/android/content/SyncRequest.java
index 4474c70..d4e0c2a 100644
--- a/core/java/android/content/SyncRequest.java
+++ b/core/java/android/content/SyncRequest.java
@@ -20,20 +20,19 @@
 import android.os.Bundle;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.util.Pair;
 
 public class SyncRequest implements Parcelable {
     private static final String TAG = "SyncRequest";
-    /** Account to pass to the sync adapter. Can be null. */
+    /** Account to pass to the sync adapter. May be null. */
     private final Account mAccountToSync;
     /** Authority string that corresponds to a ContentProvider. */
     private final String mAuthority;
-    /** {@link SyncService} identifier. */
+    /** Sync service identifier. May be null.*/
     private final ComponentName mComponentInfo;
     /** Bundle containing user info as well as sync settings. */
     private final Bundle mExtras;
-    /** Allow this sync request on metered networks. */
-    private final boolean mAllowMetered;
+    /** Disallow this sync request on metered networks. */
+    private final boolean mDisallowMetered;
     /**
      * Anticipated upload size in bytes.
      * TODO: Not yet used - we put this information into the bundle for simplicity.
@@ -70,14 +69,18 @@
         return mIsPeriodic;
     }
 
+    /**
+     * {@hide}
+     * @return whether this is an expedited sync.
+     */
     public boolean isExpedited() {
         return mIsExpedited;
     }
 
     /**
      * {@hide}
-     * @return true if this sync uses an account/authority pair, or false if
-     *         this is an anonymous sync bound to an @link AnonymousSyncService.
+     * @return true if this sync uses an account/authority pair, or false if this sync is bound to
+     * a Sync Service.
      */
     public boolean hasAuthority() {
         return mIsAuthority;
@@ -85,31 +88,30 @@
 
     /**
      * {@hide}
-     * Throws a runtime IllegalArgumentException if this function is called for an
-     * anonymous sync.
-     *
-     * @return (Account, Provider) for this SyncRequest.
+     * @return account object for this sync.
+     * @throws IllegalArgumentException if this function is called for a request that does not
+     * specify an account/provider authority.
      */
-    public Pair<Account, String> getProviderInfo() {
+    public Account getAccount() {
         if (!hasAuthority()) {
-            throw new IllegalArgumentException("Cannot getProviderInfo() for an anonymous sync.");
+            throw new IllegalArgumentException("Cannot getAccount() for a sync that does not"
+                    + "specify an authority.");
         }
-        return Pair.create(mAccountToSync, mAuthority);
+        return mAccountToSync;
     }
 
     /**
      * {@hide}
-     * Throws a runtime IllegalArgumentException if this function is called for a
-     * SyncRequest that is bound to an account/provider.
-     *
-     * @return ComponentName for the service that this sync will bind to.
+     * @return provider for this sync.
+     * @throws IllegalArgumentException if this function is called for a request that does not
+     * specify an account/provider authority.
      */
-    public ComponentName getService() {
-        if (hasAuthority()) {
-            throw new IllegalArgumentException(
-                    "Cannot getAnonymousService() for a sync that has specified a provider.");
+    public String getProvider() {
+        if (!hasAuthority()) {
+            throw new IllegalArgumentException("Cannot getProvider() for a sync that does not"
+                    + "specify a provider.");
         }
-        return mComponentInfo;
+        return mAuthority;
     }
 
     /**
@@ -127,6 +129,7 @@
     public long getSyncFlexTime() {
         return mSyncFlexTimeSecs;
     }
+
     /**
      * {@hide}
      * @return the last point in time at which this sync must scheduled.
@@ -159,7 +162,7 @@
         parcel.writeLong(mSyncFlexTimeSecs);
         parcel.writeLong(mSyncRunTimeSecs);
         parcel.writeInt((mIsPeriodic ? 1 : 0));
-        parcel.writeInt((mAllowMetered ? 1 : 0));
+        parcel.writeInt((mDisallowMetered ? 1 : 0));
         parcel.writeLong(mTxBytes);
         parcel.writeLong(mRxBytes);
         parcel.writeInt((mIsAuthority ? 1 : 0));
@@ -177,7 +180,7 @@
         mSyncFlexTimeSecs = in.readLong();
         mSyncRunTimeSecs = in.readLong();
         mIsPeriodic = (in.readInt() != 0);
-        mAllowMetered = (in.readInt() != 0);
+        mDisallowMetered = (in.readInt() != 0);
         mTxBytes = in.readLong();
         mRxBytes = in.readLong();
         mIsAuthority = (in.readInt() != 0);
@@ -207,13 +210,13 @@
         // For now we merge the sync config extras & the custom extras into one bundle.
         // TODO: pass the configuration extras through separately.
         mExtras.putAll(b.mSyncConfigExtras);
-        mAllowMetered = b.mAllowMetered;
+        mDisallowMetered = b.mDisallowMetered;
         mTxBytes = b.mTxBytes;
         mRxBytes = b.mRxBytes;
     }
 
     /**
-     * Builder class for a @link SyncRequest. As you build your SyncRequest this class will also
+     * Builder class for a {@link SyncRequest}. As you build your SyncRequest this class will also
      * perform validation.
      */
     public static class Builder {
@@ -229,12 +232,9 @@
         private static final int SYNC_TARGET_SERVICE = 1;
         /** Specify that this is a sync with a provider. */
         private static final int SYNC_TARGET_ADAPTER = 2;
-        /**
-         * Earliest point of displacement into the future at which this sync can
-         * occur.
-         */
+        /** Earliest point of displacement into the future at which this sync can occur. */
         private long mSyncFlexTimeSecs;
-        /** Displacement into the future at which this sync must occur. */
+        /** Latest point of displacement into the future at which this sync must occur. */
         private long mSyncRunTimeSecs;
         /**
          * Sync configuration information - custom user data explicitly provided by the developer.
@@ -253,7 +253,7 @@
         /** Expected download transfer in bytes. */
         private long mRxBytes = -1L;
         /** Whether or not this sync can occur on metered networks. Default false. */
-        private boolean mAllowMetered;
+        private boolean mDisallowMetered;
         /** Priority of this sync relative to others from calling app [-2, 2]. Default 0. */
         private int mPriority = 0;
         /**
@@ -283,9 +283,8 @@
         private boolean mExpedited;
 
         /**
-         * The {@link SyncService} component that
-         * contains the sync logic if this is a provider-less sync, otherwise
-         * null.
+         * The sync component that contains the sync logic if this is a provider-less sync,
+         * otherwise null.
          */
         private ComponentName mComponentName;
         /**
@@ -303,46 +302,28 @@
         }
 
         /**
-         * Developer can define timing constraints for this one-shot request.
-         * These values are elapsed real-time.
-         *
-         * @param whenSeconds The time in seconds at which you want this
-         *            sync to occur.
-         * @param beforeSeconds The amount of time in advance of whenSeconds that this
-         *               sync may be permitted to occur. This is rounded up to a minimum of 5
-         *               seconds, for any sync for which whenSeconds > 5.
+         * Request that a sync occur immediately.
          *
          * Example
          * <pre>
-         *     Perform an immediate sync.
-         *     SyncRequest.Builder builder = (new SyncRequest.Builder()).syncOnce(0, 0);
-         *     That is, a sync 0 seconds from now with 0 seconds of flex.
-         *
-         *     Perform a sync in exactly 5 minutes.
-         *     SyncRequest.Builder builder =
-         *       new SyncRequest.Builder().syncOnce(5 * MIN_IN_SECS, 0);
-         *
-         *     Perform a sync in 5 minutes, with one minute of leeway (between 4 and 5 minutes from
-         *     now).
-         *     SyncRequest.Builder builder =
-         *       new SyncRequest.Builder().syncOnce(5 * MIN_IN_SECS, 1 * MIN_IN_SECS);
+         *     SyncRequest.Builder builder = (new SyncRequest.Builder()).syncOnce();
          * </pre>
          */
-        public Builder syncOnce(long whenSeconds, long beforeSeconds) {
+        public Builder syncOnce() {
             if (mSyncType != SYNC_TYPE_UNKNOWN) {
                 throw new IllegalArgumentException("Sync type has already been defined.");
             }
             mSyncType = SYNC_TYPE_ONCE;
-            setupInterval(whenSeconds, beforeSeconds);
+            setupInterval(0, 0);
             return this;
         }
 
         /**
          * Build a periodic sync. Either this or syncOnce() <b>must</b> be called for this builder.
-         * Syncs are identified by target {@link SyncService}/{@link android.provider} and by the
-         * contents of the extras bundle.
-         * You cannot reuse the same builder for one-time syncs after having specified a periodic
-         * sync (by calling this function). If you do, an <code>IllegalArgumentException</code>
+         * Syncs are identified by target {@link android.provider}/{@link android.accounts.Account}
+         * and by the contents of the extras bundle.
+         * You cannot reuse the same builder for one-time syncs (by calling this function) after
+         * having specified a periodic sync. If you do, an <code>IllegalArgumentException</code>
          * will be thrown.
          *
          * Example usage.
@@ -394,6 +375,7 @@
         }
 
         /**
+         * {@hide}
          * Developer can provide insight into their payload size; optional. -1 specifies unknown,
          * so that you are not restricted to defining both fields.
          *
@@ -407,21 +389,20 @@
         }
 
         /**
-         * @param allow false to allow this transfer on metered networks. Default true.
+         * @see android.net.ConnectivityManager#isActiveNetworkMetered()
+         * @param disallow true to enforce that this transfer not occur on metered networks.
+         *                 Default false.
          */
-        public Builder setAllowMetered(boolean allow) {
-            mAllowMetered = true;
+        public Builder setDisallowMetered(boolean disallow) {
+            mDisallowMetered = disallow;
             return this;
         }
 
         /**
-         * Specify an authority and account for this transfer. Cannot be used with
-         * {@link #setSyncAdapter(ComponentName cname)}.
+         * Specify an authority and account for this transfer.
          *
-         * @param authority
-         * @param account Account to sync. Can be null unless this is a periodic
-         *            sync, for which verification by the ContentResolver will
-         *            fail. If a sync is performed without an account, the
+         * @param authority String identifying which content provider to sync.
+         * @param account Account to sync. Can be null unless this is a periodic sync.
          */
         public Builder setSyncAdapter(Account account, String authority) {
             if (mSyncTarget != SYNC_TARGET_UNKNOWN) {
@@ -435,26 +416,10 @@
         }
 
         /**
-         * Specify the {@link SyncService} component for this sync. This is not validated until
-         * sync time so providing an incorrect component name here will not fail. Cannot be used
-         * with {@link #setSyncAdapter(Account account, String authority)}.
-         *
-         * @param cname ComponentName to identify your Anonymous service
-         */
-        public Builder setSyncAdapter(ComponentName cname) {
-            if (mSyncTarget != SYNC_TARGET_UNKNOWN) {
-                throw new IllegalArgumentException("Sync target has already been defined.");
-            }
-            mSyncTarget = SYNC_TARGET_SERVICE;
-            mComponentName = cname;
-            mAccount = null;
-            mAuthority = null;
-            return this;
-        }
-
-        /**
-         * Developer-provided extras handed back when sync actually occurs. This bundle is copied
-         * into the SyncRequest returned by {@link #build()}.
+         * Optional developer-provided extras handed back in
+         * {@link AbstractThreadedSyncAdapter#onPerformSync(Account, Bundle, String,
+         * ContentProviderClient, SyncResult)} occurs. This bundle is copied into the SyncRequest
+         * returned by {@link #build()}.
          *
          * Example:
          * <pre>
@@ -468,7 +433,7 @@
          *     Bundle extras = new Bundle();
          *     extras.setString("data", syncData);
          *     builder.setExtras(extras);
-         *     ContentResolver.sync(builder.build()); // Each sync() request creates a unique sync.
+         *     ContentResolver.sync(builder.build()); // Each sync() request is for a unique sync.
          *   }
          * </pre>
          * Only values of the following types may be used in the extras bundle:
@@ -509,7 +474,8 @@
         /**
          * Convenience function for setting {@link ContentResolver#SYNC_EXTRAS_IGNORE_SETTINGS}.
          *
-         * Not valid for periodic sync and will throw an <code>IllegalArgumentException</code> in
+         * A sync can specify that system sync settings be ignored (user has turned sync off). Not
+         * valid for periodic sync and will throw an <code>IllegalArgumentException</code> in
          * {@link #build()}.
          *
          * @param ignoreSettings true to ignore the sync automatically settings. Default false.
@@ -522,13 +488,13 @@
         /**
          * Convenience function for setting {@link ContentResolver#SYNC_EXTRAS_IGNORE_BACKOFF}.
          *
-         * Ignoring back-off will force the sync scheduling process to ignore any back-off that was
-         * the result of a failed sync, as well as to invalidate any {@link SyncResult#delayUntil}
-         * value that may have been set by the adapter. Successive failures will not honor this
-         * flag. Not valid for periodic sync and will throw an <code>IllegalArgumentException</code>
-         * in {@link #build()}.
+         * Force the sync scheduling process to ignore any back-off that was the result of a failed
+         * sync, as well as to invalidate any {@link SyncResult#delayUntil} value that may have
+         * been set by the adapter. Successive failures will not honor this flag. Not valid for
+         * periodic sync and will throw an <code>IllegalArgumentException</code> in
+         * {@link #build()}.
          *
-         * @param ignoreBackoff ignore back off settings. Default false.
+         * @param ignoreBackoff ignore back-off settings. Default false.
          */
         public Builder setIgnoreBackoff(boolean ignoreBackoff) {
             mIgnoreBackoff = ignoreBackoff;
@@ -538,8 +504,9 @@
         /**
          * Convenience function for setting {@link ContentResolver#SYNC_EXTRAS_MANUAL}.
          *
-         * Not valid for periodic sync and will throw an <code>IllegalArgumentException</code> in
-         * {@link #build()}.
+         * A manual sync is functionally equivalent to calling {@link #setIgnoreBackoff(boolean)}
+         * and {@link #setIgnoreSettings(boolean)}. Not valid for periodic sync and will throw an
+         * <code>IllegalArgumentException</code> in {@link #build()}.
          *
          * @param isManual User-initiated sync or not. Default false.
          */
@@ -549,7 +516,7 @@
         }
 
         /**
-         * An expedited sync runs immediately and can preempt other non-expedited running syncs.
+         * An expedited sync runs immediately and will preempt another non-expedited running sync.
          *
          * Not valid for periodic sync and will throw an <code>IllegalArgumentException</code> in
          * {@link #build()}.
@@ -562,6 +529,7 @@
         }
 
         /**
+         * {@hide}
          * @param priority the priority of this request among all requests from the calling app.
          * Range of [-2,2] similar to how this is done with notifications.
          */
@@ -581,18 +549,18 @@
          *         builder.
          */
         public SyncRequest build() {
-            // Validate the extras bundle
-            ContentResolver.validateSyncExtrasBundle(mCustomExtras);
             if (mCustomExtras == null) {
                 mCustomExtras = new Bundle();
             }
+            // Validate the extras bundle
+            ContentResolver.validateSyncExtrasBundle(mCustomExtras);
             // Combine builder extra flags into the config bundle.
             mSyncConfigExtras = new Bundle();
             if (mIgnoreBackoff) {
                 mSyncConfigExtras.putBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_BACKOFF, true);
             }
-            if (mAllowMetered) {
-                mSyncConfigExtras.putBoolean(ContentResolver.SYNC_EXTRAS_ALLOW_METERED, true);
+            if (mDisallowMetered) {
+                mSyncConfigExtras.putBoolean(ContentResolver.SYNC_EXTRAS_DISALLOW_METERED, true);
             }
             if (mIgnoreSettings) {
                 mSyncConfigExtras.putBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_SETTINGS, true);
@@ -613,13 +581,22 @@
                 // If this is a periodic sync ensure than invalid extras were not set.
                 validatePeriodicExtras(mCustomExtras);
                 validatePeriodicExtras(mSyncConfigExtras);
+                // Verify that account and provider are not null.
+                if (mAccount == null) {
+                    throw new IllegalArgumentException("Account must not be null for periodic"
+                            + " sync.");
+                }
+                if (mAuthority == null) {
+                    throw new IllegalArgumentException("Authority must not be null for periodic"
+                            + " sync.");
+                }
             } else if (mSyncType == SYNC_TYPE_UNKNOWN) {
                 throw new IllegalArgumentException("Must call either syncOnce() or syncPeriodic()");
             }
             // Ensure that a target for the sync has been set.
             if (mSyncTarget == SYNC_TARGET_UNKNOWN) {
-                throw new IllegalArgumentException("Must specify an adapter with one of"
-                    + "setSyncAdapter(ComponentName) or setSyncAdapter(Account, String");
+                throw new IllegalArgumentException("Must specify an adapter with "
+                        + "setSyncAdapter(Account, String");
             }
             return new SyncRequest(this);
         }
diff --git a/core/java/android/content/SyncService.java b/core/java/android/content/SyncService.java
deleted file mode 100644
index 100fd40..0000000
--- a/core/java/android/content/SyncService.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.content;
-
-import android.app.Service;
-import android.os.Bundle;
-import android.os.IBinder;
-import android.os.Process;
-import android.os.Trace;
-
-import com.android.internal.annotations.GuardedBy;
-
-import java.util.HashMap;
-
-/**
- * Simplified @link android.content.AbstractThreadedSyncAdapter. Folds that
- * behaviour into a service to which the system can bind when requesting an
- * anonymous (providerless/accountless) sync.
- * <p>
- * In order to perform an anonymous sync operation you must extend this service,
- * implementing the abstract methods. This service must then be declared in the
- * application's manifest as usual. You can use this service for other work, however you
- * <b> must not </b> override the onBind() method unless you know what you're doing,
- * which limits the usefulness of this service for other work.
- *
- * <pre>
- * &lt;service ndroid:name=".MyAnonymousSyncService" android:permission="android.permission.SYNC" /&gt;
- * </pre>
- * Like @link android.content.AbstractThreadedSyncAdapter this service supports
- * multiple syncs at the same time. Each incoming startSync() with a unique tag
- * will spawn a thread to do the work of that sync. If startSync() is called
- * with a tag that already exists, a SyncResult.ALREADY_IN_PROGRESS is returned.
- * Remember that your service will spawn multiple threads if you schedule multiple syncs
- * at once, so if you mutate local objects you must ensure synchronization.
- */
-public abstract class SyncService extends Service {
-
-    /** SyncAdapter Instantiation that any anonymous syncs call. */
-    private final AnonymousSyncAdapterImpl mSyncAdapter = new AnonymousSyncAdapterImpl();
-
-    /** Keep track of on-going syncs, keyed by tag. */
-    @GuardedBy("mLock")
-    private final HashMap<Bundle, AnonymousSyncThread>
-            mSyncThreads = new HashMap<Bundle, AnonymousSyncThread>();
-    /** Lock object for accessing the SyncThreads HashMap. */
-    private final Object mSyncThreadLock = new Object();
-
-    @Override
-    public IBinder onBind(Intent intent) {
-        return mSyncAdapter.asBinder();
-    }
-
-    /** {@hide} */
-    private class AnonymousSyncAdapterImpl extends IAnonymousSyncAdapter.Stub {
-
-        @Override
-        public void startSync(ISyncContext syncContext, Bundle extras) {
-            // Wrap the provided Sync Context because it may go away by the time
-            // we call it.
-            final SyncContext syncContextClient = new SyncContext(syncContext);
-            boolean alreadyInProgress = false;
-            synchronized (mSyncThreadLock) {
-                if (mSyncThreads.containsKey(extras)) {
-                    // Don't want to call back to SyncManager while still
-                    // holding lock.
-                    alreadyInProgress = true;
-                } else {
-                    AnonymousSyncThread syncThread = new AnonymousSyncThread(
-                            syncContextClient, extras);
-                    mSyncThreads.put(extras, syncThread);
-                    syncThread.start();
-                }
-            }
-            if (alreadyInProgress) {
-                syncContextClient.onFinished(SyncResult.ALREADY_IN_PROGRESS);
-            }
-        }
-
-        /**
-         * Used by the SM to cancel a specific sync using the {@link
-         * com.android.server.content.SyncManager.ActiveSyncContext} as a handle.
-         */
-        @Override
-        public void cancelSync(ISyncContext syncContext) {
-            AnonymousSyncThread runningSync = null;
-            synchronized (mSyncThreadLock) {
-                for (AnonymousSyncThread thread : mSyncThreads.values()) {
-                    if (thread.mSyncContext.getSyncContextBinder() == syncContext.asBinder()) {
-                        runningSync = thread;
-                        break;
-                    }
-                }
-            }
-            if (runningSync != null) {
-                runningSync.interrupt();
-            }
-        }
-    }
-
-    /**
-     * {@hide}
-     * Similar to {@link android.content.AbstractThreadedSyncAdapter.SyncThread}. However while
-     * the ATSA considers an already in-progress sync to be if the account provided is currently
-     * syncing, this anonymous sync has no notion of account and therefore considers a sync unique
-     * if the provided bundle is different.
-     */
-    private class AnonymousSyncThread extends Thread {
-        private final SyncContext mSyncContext;
-        private final Bundle mExtras;
-
-        public AnonymousSyncThread(SyncContext syncContext, Bundle extras) {
-            mSyncContext = syncContext;
-            mExtras = extras;
-        }
-
-        @Override
-        public void run() {
-            Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
-
-            Trace.traceBegin(Trace.TRACE_TAG_SYNC_MANAGER, getApplication().getPackageName());
-
-            SyncResult syncResult = new SyncResult();
-            try {
-                if (isCancelled()) {
-                    return;
-                }
-                // Run the sync based off of the provided code.
-                SyncService.this.onPerformSync(mExtras, syncResult);
-            } finally {
-                Trace.traceEnd(Trace.TRACE_TAG_SYNC_MANAGER);
-                if (!isCancelled()) {
-                    mSyncContext.onFinished(syncResult);
-                }
-                // Synchronize so that the assignment will be seen by other
-                // threads
-                // that also synchronize accesses to mSyncThreads.
-                synchronized (mSyncThreadLock) {
-                    mSyncThreads.remove(mExtras);
-                }
-            }
-        }
-
-        private boolean isCancelled() {
-            return Thread.currentThread().isInterrupted();
-        }
-    }
-
-    /**
-     * Initiate an anonymous sync using this service. SyncAdapter-specific
-     * parameters may be specified in extras, which is guaranteed to not be
-     * null.
-     */
-    public abstract void onPerformSync(Bundle extras, SyncResult syncResult);
-
-}
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index eba69b6..2b0c896 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -216,6 +216,12 @@
 
     void resetPreferredActivities(int userId);
 
+    ResolveInfo getLastChosenActivity(in Intent intent,
+            String resolvedType, int flags);
+
+    void setLastChosenActivity(in Intent intent, String resolvedType, int flags,
+            in IntentFilter filter, int match, in ComponentName activity);
+
     void addPreferredActivity(in IntentFilter filter, int match,
             in ComponentName[] set, in ComponentName activity, int userId);
 
@@ -226,7 +232,7 @@
 
     int getPreferredActivities(out List<IntentFilter> outFilters,
             out List<ComponentName> outActivities, String packageName);
-    
+
     /**
      * As per {@link android.content.pm.PackageManager#setComponentEnabledSetting}.
      */
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 81f860e..d58b14c 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -957,12 +957,24 @@
      * Feature for {@link #getSystemAvailableFeatures} and
      * {@link #hasSystemFeature}: The device supports host-
      * based NFC card emulation.
+     *
+     * TODO remove when depending apps have moved to new constant.
+     * @hide
+     * @deprecated
      */
     @SdkConstant(SdkConstantType.FEATURE)
     public static final String FEATURE_NFC_HCE = "android.hardware.nfc.hce";
 
     /**
      * Feature for {@link #getSystemAvailableFeatures} and
+     * {@link #hasSystemFeature}: The device supports host-
+     * based NFC card emulation.
+     */
+    @SdkConstant(SdkConstantType.FEATURE)
+    public static final String FEATURE_NFC_HOST_CARD_EMULATION = "android.hardware.nfc.hce";
+
+    /**
+     * Feature for {@link #getSystemAvailableFeatures} and
      * {@link #hasSystemFeature}: The device includes an accelerometer.
      */
     @SdkConstant(SdkConstantType.FEATURE)
diff --git a/core/java/android/ddm/DdmHandleProfiling.java b/core/java/android/ddm/DdmHandleProfiling.java
index e0db5e7..ec08393 100644
--- a/core/java/android/ddm/DdmHandleProfiling.java
+++ b/core/java/android/ddm/DdmHandleProfiling.java
@@ -34,6 +34,8 @@
     public static final int CHUNK_MPSS = type("MPSS");
     public static final int CHUNK_MPSE = type("MPSE");
     public static final int CHUNK_MPRQ = type("MPRQ");
+    public static final int CHUNK_SPSS = type("SPSS");
+    public static final int CHUNK_SPSE = type("SPSE");
 
     private static DdmHandleProfiling mInstance = new DdmHandleProfiling();
 
@@ -50,6 +52,8 @@
         DdmServer.registerHandler(CHUNK_MPSS, mInstance);
         DdmServer.registerHandler(CHUNK_MPSE, mInstance);
         DdmServer.registerHandler(CHUNK_MPRQ, mInstance);
+        DdmServer.registerHandler(CHUNK_SPSS, mInstance);
+        DdmServer.registerHandler(CHUNK_SPSE, mInstance);
     }
 
     /**
@@ -82,6 +86,10 @@
             return handleMPSE(request);
         } else if (type == CHUNK_MPRQ) {
             return handleMPRQ(request);
+        } else if (type == CHUNK_SPSS) {
+            return handleSPSS(request);
+        } else if (type == CHUNK_SPSE) {
+            return handleSPSE(request);
         } else {
             throw new RuntimeException("Unknown packet "
                 + ChunkHandler.name(type));
@@ -144,7 +152,7 @@
         }
 
         try {
-            Debug.startMethodTracingDdms(bufferSize, flags);
+            Debug.startMethodTracingDdms(bufferSize, flags, false, 0);
             return null;        // empty response
         } catch (RuntimeException re) {
             return createFailChunk(1, re.getMessage());
@@ -178,11 +186,53 @@
      * Handle a "Method PRofiling Query" request.
      */
     private Chunk handleMPRQ(Chunk request) {
-        int result = Debug.isMethodTracingActive() ? 1 : 0;
+        int result = Debug.getMethodTracingMode();
 
         /* create a non-empty reply so the handler fires on completion */
         byte[] reply = { (byte) result };
         return new Chunk(CHUNK_MPRQ, reply, 0, reply.length);
     }
+
+    /*
+     * Handle a "Sample Profiling w/Streaming Start" request.
+     */
+    private Chunk handleSPSS(Chunk request) {
+        ByteBuffer in = wrapChunk(request);
+
+        int bufferSize = in.getInt();
+        int flags = in.getInt();
+        int interval = in.getInt();
+        if (false) {
+            Log.v("ddm-heap", "Sample prof stream start: size=" + bufferSize
+                + ", flags=" + flags + ", interval=" + interval);
+        }
+
+        try {
+            Debug.startMethodTracingDdms(bufferSize, flags, true, interval);
+            return null;        // empty response
+        } catch (RuntimeException re) {
+            return createFailChunk(1, re.getMessage());
+        }
+    }
+
+    /*
+     * Handle a "Sample Profiling w/Streaming End" request.
+     */
+    private Chunk handleSPSE(Chunk request) {
+        if (false) {
+            Log.v("ddm-heap", "Sample prof stream end");
+        }
+
+        try {
+            Debug.stopMethodTracing();
+        } catch (RuntimeException re) {
+            Log.w("ddm-heap", "Sample prof stream end failed: "
+                + re.getMessage());
+            return createFailChunk(1, re.getMessage());
+        }
+
+        /* VM sent the (perhaps very large) response directly */
+        return null;
+    }
 }
 
diff --git a/core/java/android/net/CaptivePortalTracker.java b/core/java/android/net/CaptivePortalTracker.java
index 74c2c59..01977cd 100644
--- a/core/java/android/net/CaptivePortalTracker.java
+++ b/core/java/android/net/CaptivePortalTracker.java
@@ -16,22 +16,16 @@
 
 package android.net;
 
-import android.app.Activity;
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.res.Resources;
 import android.database.ContentObserver;
 import android.net.ConnectivityManager;
 import android.net.IConnectivityManager;
 import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
 import android.os.Handler;
-import android.os.UserHandle;
 import android.os.Message;
 import android.os.RemoteException;
 import android.os.SystemClock;
@@ -46,7 +40,6 @@
 import android.telephony.CellInfoLte;
 import android.telephony.CellInfoWcdma;
 import android.telephony.TelephonyManager;
-import android.text.TextUtils;
 
 import com.android.internal.util.State;
 import com.android.internal.util.StateMachine;
@@ -60,8 +53,6 @@
 import java.net.UnknownHostException;
 import java.util.List;
 
-import com.android.internal.R;
-
 /**
  * This class allows captive portal detection on a network.
  * @hide
@@ -71,7 +62,6 @@
     private static final String TAG = "CaptivePortalTracker";
 
     private static final String DEFAULT_SERVER = "clients3.google.com";
-    private static final String NOTIFICATION_ID = "CaptivePortal.Notification";
 
     private static final int SOCKET_TIMEOUT_MS = 10000;
 
@@ -93,7 +83,6 @@
 
     private String mServer;
     private String mUrl;
-    private boolean mNotificationShown = false;
     private boolean mIsCaptivePortalCheckEnabled = false;
     private IConnectivityManager mConnService;
     private TelephonyManager mTelephonyManager;
@@ -192,12 +181,12 @@
     private class DefaultState extends State {
         @Override
         public void enter() {
-            if (DBG) log(getName() + "\n");
+            setNotificationOff();
         }
 
         @Override
         public boolean processMessage(Message message) {
-            if (DBG) log(getName() + message.toString() + "\n");
+            if (DBG) log(getName() + message.toString());
             switch (message.what) {
                 case CMD_DETECT_PORTAL:
                     NetworkInfo info = (NetworkInfo) message.obj;
@@ -219,23 +208,24 @@
     private class NoActiveNetworkState extends State {
         @Override
         public void enter() {
-            if (DBG) log(getName() + "\n");
             mNetworkInfo = null;
-            /* Clear any previous notification */
-            setNotificationVisible(false);
         }
 
         @Override
         public boolean processMessage(Message message) {
-            if (DBG) log(getName() + message.toString() + "\n");
+            if (DBG) log(getName() + message.toString());
             InetAddress server;
             NetworkInfo info;
             switch (message.what) {
                 case CMD_CONNECTIVITY_CHANGE:
                     info = (NetworkInfo) message.obj;
-                    if (info.isConnected() && isActiveNetwork(info)) {
-                        mNetworkInfo = info;
-                        transitionTo(mDelayedCaptiveCheckState);
+                    if (info.getType() == ConnectivityManager.TYPE_WIFI) {
+                        if (info.isConnected() && isActiveNetwork(info)) {
+                            mNetworkInfo = info;
+                            transitionTo(mDelayedCaptiveCheckState);
+                        }
+                    } else {
+                        log(getName() + " not a wifi connectivity change, ignore");
                     }
                     break;
                 default:
@@ -248,7 +238,7 @@
     private class ActiveNetworkState extends State {
         @Override
         public void enter() {
-            if (DBG) log(getName() + "\n");
+            setNotificationOff();
         }
 
         @Override
@@ -281,7 +271,6 @@
     private class DelayedCaptiveCheckState extends State {
         @Override
         public void enter() {
-            if (DBG) log(getName() + "\n");
             Message message = obtainMessage(CMD_DELAYED_CAPTIVE_CHECK, ++mDelayedCheckToken, 0);
             if (mDeviceProvisioned) {
                 sendMessageDelayed(message, DELAYED_CHECK_INTERVAL_MS);
@@ -292,7 +281,7 @@
 
         @Override
         public boolean processMessage(Message message) {
-            if (DBG) log(getName() + message.toString() + "\n");
+            if (DBG) log(getName() + message.toString());
             switch (message.what) {
                 case CMD_DELAYED_CAPTIVE_CHECK:
                     if (message.arg1 == mDelayedCheckToken) {
@@ -308,7 +297,12 @@
                             if (captive) {
                                 // Setup Wizard will assist the user in connecting to a captive
                                 // portal, so make the notification visible unless during setup
-                                setNotificationVisible(true);
+                                try {
+                                    mConnService.setProvisioningNotificationVisible(true,
+                                        mNetworkInfo.getType(), mNetworkInfo.getExtraInfo(), mUrl);
+                                } catch(RemoteException e) {
+                                    e.printStackTrace();
+                                }
                             }
                         } else {
                             Intent intent = new Intent(
@@ -366,6 +360,15 @@
         return false;
     }
 
+    private void setNotificationOff() {
+        try {
+            mConnService.setProvisioningNotificationVisible(false, ConnectivityManager.TYPE_NONE,
+                    null, null);
+        } catch (RemoteException e) {
+            log("setNotificationOff: " + e);
+        }
+    }
+
     /**
      * Do a URL fetch on a known server to see if we get the data we expect.
      * Measure the response time and broadcast that.
@@ -394,17 +397,14 @@
             long responseTimestamp = SystemClock.elapsedRealtime();
 
             // we got a valid response, but not from the real google
-            boolean isCaptivePortal = urlConnection.getResponseCode() != 204;
+            int rspCode = urlConnection.getResponseCode();
+            boolean isCaptivePortal = rspCode != 204;
 
             sendNetworkConditionsBroadcast(true /* response received */, isCaptivePortal,
                     requestTimestamp, responseTimestamp);
+
+            if (DBG) log("isCaptivePortal: ret=" + isCaptivePortal + " rspCode=" + rspCode);
             return isCaptivePortal;
-        } catch (SocketTimeoutException e) {
-            if (DBG) log("Probably a portal: exception " + e);
-            if (requestTimestamp != -1) {
-                sendFailedCaptivePortalCheckBroadcast(requestTimestamp);
-            } // else something went wrong with setting up the urlConnection
-            return true;
         } catch (IOException e) {
             if (DBG) log("Probably not a portal: exception " + e);
             if (requestTimestamp != -1) {
@@ -435,77 +435,6 @@
         return null;
     }
 
-    private void setNotificationVisible(boolean visible) {
-        // if it should be hidden and it is already hidden, then noop
-        if (!visible && !mNotificationShown) {
-            if (DBG) log("setNotivicationVisible: false and not shown, so noop");
-            return;
-        }
-
-        Resources r = Resources.getSystem();
-        NotificationManager notificationManager = (NotificationManager) mContext
-            .getSystemService(Context.NOTIFICATION_SERVICE);
-
-        if (visible) {
-            CharSequence title;
-            CharSequence details;
-            int icon;
-            String url = null;
-            switch (mNetworkInfo.getType()) {
-                case ConnectivityManager.TYPE_WIFI:
-                    title = r.getString(R.string.wifi_available_sign_in, 0);
-                    details = r.getString(R.string.network_available_sign_in_detailed,
-                            mNetworkInfo.getExtraInfo());
-                    icon = R.drawable.stat_notify_wifi_in_range;
-                    url = mUrl;
-                    break;
-                case ConnectivityManager.TYPE_MOBILE:
-                    title = r.getString(R.string.network_available_sign_in, 0);
-                    // TODO: Change this to pull from NetworkInfo once a printable
-                    // name has been added to it
-                    details = mTelephonyManager.getNetworkOperatorName();
-                    icon = R.drawable.stat_notify_rssi_in_range;
-                    try {
-                        url = mConnService.getMobileProvisioningUrl();
-                        if (TextUtils.isEmpty(url)) {
-                            url = mConnService.getMobileRedirectedProvisioningUrl();
-                        }
-                    } catch(RemoteException e) {
-                        e.printStackTrace();
-                    }
-                    if (TextUtils.isEmpty(url)) {
-                        url = mUrl;
-                    }
-                    break;
-                default:
-                    title = r.getString(R.string.network_available_sign_in, 0);
-                    details = r.getString(R.string.network_available_sign_in_detailed,
-                            mNetworkInfo.getExtraInfo());
-                    icon = R.drawable.stat_notify_rssi_in_range;
-                    url = mUrl;
-                    break;
-            }
-
-            Notification notification = new Notification();
-            notification.when = 0;
-            notification.icon = icon;
-            notification.flags = Notification.FLAG_AUTO_CANCEL;
-            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
-            intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT |
-                    Intent.FLAG_ACTIVITY_NEW_TASK);
-            notification.contentIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
-            notification.tickerText = title;
-            notification.setLatestEventInfo(mContext, title, details, notification.contentIntent);
-
-            if (DBG) log("setNotivicationVisible: make visible");
-            notificationManager.notify(NOTIFICATION_ID, 1, notification);
-        } else {
-            if (DBG) log("setNotivicationVisible: cancel notification");
-            notificationManager.cancel(NOTIFICATION_ID, 1);
-        }
-        mNotificationShown = visible;
-    }
-
     private void sendFailedCaptivePortalCheckBroadcast(long requestTimestampMs) {
         sendNetworkConditionsBroadcast(false /* response received */, false /* ignored */,
                 requestTimestampMs, 0 /* ignored */);
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index f6a3a4a..3874369 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -624,6 +624,29 @@
     }
 
     /**
+     * Returns details about the Provisioning or currently active default data network. When
+     * connected, this network is the default route for outgoing connections.
+     * You should always check {@link NetworkInfo#isConnected()} before initiating
+     * network traffic. This may return {@code null} when there is no default
+     * network.
+     *
+     * @return a {@link NetworkInfo} object for the current default network
+     *        or {@code null} if no network default network is currently active
+     *
+     * <p>This method requires the call to hold the permission
+     * {@link android.Manifest.permission#ACCESS_NETWORK_STATE}.
+     *
+     * {@hide}
+     */
+    public NetworkInfo getProvisioningOrActiveNetworkInfo() {
+        try {
+            return mService.getProvisioningOrActiveNetworkInfo();
+        } catch (RemoteException e) {
+            return null;
+        }
+    }
+
+    /**
      * Returns the IP information for the current default network.
      *
      * @return a {@link LinkProperties} object describing the IP info
@@ -1357,63 +1380,19 @@
     }
 
     /**
-     * The ResultReceiver resultCode for checkMobileProvisioning (CMP_RESULT_CODE)
-     */
-
-    /**
-     * No connection was possible to the network.
-     * {@hide}
-     */
-    public static final int CMP_RESULT_CODE_NO_CONNECTION = 0;
-
-    /**
-     * A connection was made to the internet, all is well.
-     * {@hide}
-     */
-    public static final int CMP_RESULT_CODE_CONNECTABLE = 1;
-
-    /**
-     * A connection was made but there was a redirection, we appear to be in walled garden.
-     * This is an indication of a warm sim on a mobile network.
-     * {@hide}
-     */
-    public static final int CMP_RESULT_CODE_REDIRECTED = 2;
-
-    /**
-     * A connection was made but no dns server was available to resolve a name to address.
-     * This is an indication of a warm sim on a mobile network.
+     * Check mobile provisioning.
      *
-     * {@hide}
-     */
-    public static final int CMP_RESULT_CODE_NO_DNS = 3;
-
-    /**
-     * A connection was made but could not open a TCP connection.
-     * This is an indication of a warm sim on a mobile network.
-     * {@hide}
-     */
-    public static final int CMP_RESULT_CODE_NO_TCP_CONNECTION = 4;
-
-    /**
-     * Check mobile provisioning. The resultCode passed to
-     * onReceiveResult will be one of the CMP_RESULT_CODE_xxxx values above.
-     * This may take a minute or more to complete.
-     *
-     * @param sendNotificaiton, when true a notification will be sent to user.
      * @param suggestedTimeOutMs, timeout in milliseconds
-     * @param resultReceiver needs to  be supplied to receive the result
      *
      * @return time out that will be used, maybe less that suggestedTimeOutMs
      * -1 if an error.
      *
      * {@hide}
      */
-    public int checkMobileProvisioning(boolean sendNotification, int suggestedTimeOutMs,
-            ResultReceiver resultReceiver) {
+    public int checkMobileProvisioning(int suggestedTimeOutMs) {
         int timeOutMs = -1;
         try {
-            timeOutMs = mService.checkMobileProvisioning(sendNotification, suggestedTimeOutMs,
-                    resultReceiver);
+            timeOutMs = mService.checkMobileProvisioning(suggestedTimeOutMs);
         } catch (RemoteException e) {
         }
         return timeOutMs;
@@ -1481,4 +1460,20 @@
             return null;
         }
     }
+
+    /**
+     * Set sign in error notification to visible or in visible
+     *
+     * @param visible
+     * @param networkType
+     *
+     * {@hide}
+     */
+    public void setProvisioningNotificationVisible(boolean visible, int networkType,
+            String extraInfo, String url) {
+        try {
+            mService.setProvisioningNotificationVisible(visible, networkType, extraInfo, url);
+        } catch (RemoteException e) {
+        }
+    }
 }
diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl
index bf2dade..c07e900 100644
--- a/core/java/android/net/IConnectivityManager.aidl
+++ b/core/java/android/net/IConnectivityManager.aidl
@@ -50,6 +50,8 @@
     NetworkInfo getNetworkInfo(int networkType);
     NetworkInfo[] getAllNetworkInfo();
 
+    NetworkInfo getProvisioningOrActiveNetworkInfo();
+
     boolean isNetworkSupported(int networkType);
 
     LinkProperties getActiveLinkProperties();
@@ -141,7 +143,7 @@
 
     int findConnectionTypeForIface(in String iface);
 
-    int checkMobileProvisioning(boolean sendNotification, int suggestedTimeOutMs, in ResultReceiver resultReceiver);
+    int checkMobileProvisioning(int suggestedTimeOutMs);
 
     String getMobileProvisioningUrl();
 
@@ -153,4 +155,5 @@
 
     LinkInfo[] getAllLinkInfo();
 
+    void setProvisioningNotificationVisible(boolean visible, int networkType, in String extraInfo, in String url);
 }
diff --git a/core/java/android/net/MobileDataStateTracker.java b/core/java/android/net/MobileDataStateTracker.java
index faa13b0..125d5c1 100644
--- a/core/java/android/net/MobileDataStateTracker.java
+++ b/core/java/android/net/MobileDataStateTracker.java
@@ -61,8 +61,12 @@
     private ITelephony mPhoneService;
 
     private String mApnType;
+    private NetworkInfo mNetworkInfo;
     private boolean mTeardownRequested = false;
     private Handler mTarget;
+    private Context mContext;
+    private LinkProperties mLinkProperties;
+    private LinkCapabilities mLinkCapabilities;
     private boolean mPrivateDnsRouteSet = false;
     private boolean mDefaultRouteSet = false;
 
@@ -106,6 +110,7 @@
 
         IntentFilter filter = new IntentFilter();
         filter.addAction(TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED);
+        filter.addAction(TelephonyIntents.ACTION_DATA_CONNECTION_CONNECTED_TO_PROVISIONING_APN);
         filter.addAction(TelephonyIntents.ACTION_DATA_CONNECTION_FAILED);
 
         mContext.registerReceiver(new MobileDataStateReceiver(), filter);
@@ -184,10 +189,41 @@
     public void releaseWakeLock() {
     }
 
+    private void updateLinkProperitesAndCapatilities(Intent intent) {
+        mLinkProperties = intent.getParcelableExtra(
+                PhoneConstants.DATA_LINK_PROPERTIES_KEY);
+        if (mLinkProperties == null) {
+            loge("CONNECTED event did not supply link properties.");
+            mLinkProperties = new LinkProperties();
+        }
+        mLinkCapabilities = intent.getParcelableExtra(
+                PhoneConstants.DATA_LINK_CAPABILITIES_KEY);
+        if (mLinkCapabilities == null) {
+            loge("CONNECTED event did not supply link capabilities.");
+            mLinkCapabilities = new LinkCapabilities();
+        }
+    }
+
     private class MobileDataStateReceiver extends BroadcastReceiver {
         @Override
         public void onReceive(Context context, Intent intent) {
             if (intent.getAction().equals(TelephonyIntents.
+                    ACTION_DATA_CONNECTION_CONNECTED_TO_PROVISIONING_APN)) {
+                String apnName = intent.getStringExtra(PhoneConstants.DATA_APN_KEY);
+                String apnType = intent.getStringExtra(PhoneConstants.DATA_APN_TYPE_KEY);
+                if (!TextUtils.equals(mApnType, apnType)) {
+                    return;
+                }
+                if (DBG) {
+                    log("Broadcast received: " + intent.getAction() + " apnType=" + apnType
+                            + " apnName=" + apnName);
+                }
+
+                // Make us in the connecting state until we make a new TYPE_MOBILE_PROVISIONING
+                mMobileDataState = PhoneConstants.DataState.CONNECTING;
+                updateLinkProperitesAndCapatilities(intent);
+                setDetailedState(DetailedState.CONNECTED_TO_PROVISIONING_NETWORK, "", apnName);
+            } else if (intent.getAction().equals(TelephonyIntents.
                     ACTION_ANY_DATA_CONNECTION_STATE_CHANGED)) {
                 String apnType = intent.getStringExtra(PhoneConstants.DATA_APN_TYPE_KEY);
                 if (VDBG) {
@@ -249,18 +285,7 @@
                             setDetailedState(DetailedState.SUSPENDED, reason, apnName);
                             break;
                         case CONNECTED:
-                            mLinkProperties = intent.getParcelableExtra(
-                                    PhoneConstants.DATA_LINK_PROPERTIES_KEY);
-                            if (mLinkProperties == null) {
-                                loge("CONNECTED event did not supply link properties.");
-                                mLinkProperties = new LinkProperties();
-                            }
-                            mLinkCapabilities = intent.getParcelableExtra(
-                                    PhoneConstants.DATA_LINK_CAPABILITIES_KEY);
-                            if (mLinkCapabilities == null) {
-                                loge("CONNECTED event did not supply link capabilities.");
-                                mLinkCapabilities = new LinkCapabilities();
-                            }
+                            updateLinkProperitesAndCapatilities(intent);
                             setDetailedState(DetailedState.CONNECTED, reason, apnName);
                             break;
                     }
@@ -319,8 +344,8 @@
                 String reason = intent.getStringExtra(PhoneConstants.FAILURE_REASON_KEY);
                 String apnName = intent.getStringExtra(PhoneConstants.DATA_APN_KEY);
                 if (DBG) {
-                    log("Received " + intent.getAction() +
-                                " broadcast" + (reason == null ? "" : "(" + reason + ")"));
+                    log("Broadcast received: " + intent.getAction() +
+                                " reason=" + reason == null ? "null" : reason);
                 }
                 setDetailedState(DetailedState.FAILED, reason, apnName);
             } else {
@@ -412,6 +437,13 @@
         return (setEnableApn(mApnType, false) != PhoneConstants.APN_REQUEST_FAILED);
     }
 
+    /**
+     * @return true if this is ready to operate
+     */
+    public boolean isReady() {
+        return mDataConnectionTrackerAc != null;
+    }
+
     @Override
     public void captivePortalCheckComplete() {
         // not implemented
@@ -574,6 +606,40 @@
         }
     }
 
+    /**
+     *  Inform DCT mobile provisioning has started, it ends when provisioning completes.
+     */
+    public void enableMobileProvisioning(String url) {
+        if (DBG) log("enableMobileProvisioning(url=" + url + ")");
+        final AsyncChannel channel = mDataConnectionTrackerAc;
+        if (channel != null) {
+            Message msg = Message.obtain();
+            msg.what = DctConstants.CMD_ENABLE_MOBILE_PROVISIONING;
+            msg.setData(Bundle.forPair(DctConstants.PROVISIONING_URL_KEY, url));
+            channel.sendMessage(msg);
+        }
+    }
+
+    /**
+     * Return if this network is the provisioning network. Valid only if connected.
+     * @param met
+     */
+    public boolean isProvisioningNetwork() {
+        boolean retVal;
+        try {
+            Message msg = Message.obtain();
+            msg.what = DctConstants.CMD_IS_PROVISIONING_APN;
+            msg.setData(Bundle.forPair(DctConstants.APN_TYPE_KEY, mApnType));
+            Message result = mDataConnectionTrackerAc.sendMessageSynchronously(msg);
+            retVal = result.arg1 == DctConstants.ENABLED;
+        } catch (NullPointerException e) {
+            loge("isProvisioningNetwork: X " + e);
+            retVal = false;
+        }
+        if (DBG) log("isProvisioningNetwork: retVal=" + retVal);
+        return retVal;
+    }
+
     @Override
     public void addStackedLink(LinkProperties link) {
         mLinkProperties.addStackedLink(link);
diff --git a/core/java/android/net/NetworkInfo.java b/core/java/android/net/NetworkInfo.java
index 689dae5..dabc73a 100644
--- a/core/java/android/net/NetworkInfo.java
+++ b/core/java/android/net/NetworkInfo.java
@@ -84,6 +84,12 @@
         VERIFYING_POOR_LINK,
         /** Checking if network is a captive portal */
         CAPTIVE_PORTAL_CHECK,
+        /**
+         * Network is connected to provisioning network
+         * TODO: Probably not needed when we add TYPE_PROVISIONING_NETWORK
+         * @hide
+         */
+        CONNECTED_TO_PROVISIONING_NETWORK
     }
 
     /**
@@ -108,6 +114,7 @@
         stateMap.put(DetailedState.DISCONNECTED, State.DISCONNECTED);
         stateMap.put(DetailedState.FAILED, State.DISCONNECTED);
         stateMap.put(DetailedState.BLOCKED, State.DISCONNECTED);
+        stateMap.put(DetailedState.CONNECTED_TO_PROVISIONING_NETWORK, State.CONNECTED);
     }
 
     private int mNetworkType;
diff --git a/core/java/android/nfc/INfcAdapter.aidl b/core/java/android/nfc/INfcAdapter.aidl
index 9c97659..15d0475 100644
--- a/core/java/android/nfc/INfcAdapter.aidl
+++ b/core/java/android/nfc/INfcAdapter.aidl
@@ -48,5 +48,6 @@
 
     void dispatch(in Tag tag);
 
+    void setReaderMode (IBinder b, int flags);
     void setP2pModes(int initatorModes, int targetModes);
 }
diff --git a/core/java/android/nfc/NfcActivityManager.java b/core/java/android/nfc/NfcActivityManager.java
index 10183c0..d0d943c 100644
--- a/core/java/android/nfc/NfcActivityManager.java
+++ b/core/java/android/nfc/NfcActivityManager.java
@@ -19,6 +19,7 @@
 import android.app.Activity;
 import android.app.Application;
 import android.net.Uri;
+import android.os.Binder;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.util.Log;
@@ -111,6 +112,9 @@
         NfcAdapter.CreateBeamUrisCallback uriCallback = null;
         Uri[] uris = null;
         int flags = 0;
+        int readerModeFlags = 0;
+        Binder token;
+
         public NfcActivityState(Activity activity) {
             if (activity.getWindow().isDestroyed()) {
                 throw new IllegalStateException("activity is already destroyed");
@@ -120,6 +124,7 @@
             resumed = activity.isResumed();
 
             this.activity = activity;
+            this.token = new Binder();
             registerApplication(activity.getApplication());
         }
         public void destroy() {
@@ -131,6 +136,8 @@
             onNdefPushCompleteCallback = null;
             uriCallback = null;
             uris = null;
+            readerModeFlags = 0;
+            token = null;
         }
         @Override
         public String toString() {
@@ -190,6 +197,44 @@
         mDefaultEvent = new NfcEvent(mAdapter);
     }
 
+    public void enableReaderMode(Activity activity, int flags) {
+        boolean isResumed;
+        Binder token;
+        synchronized (NfcActivityManager.this) {
+            NfcActivityState state = getActivityState(activity);
+            state.readerModeFlags = flags;
+            token = state.token;
+            isResumed = state.resumed;
+        }
+        if (isResumed) {
+            setReaderMode(token, flags);
+        }
+    }
+
+    public void disableReaderMode(Activity activity) {
+        boolean isResumed;
+        Binder token;
+        synchronized (NfcActivityManager.this) {
+            NfcActivityState state = getActivityState(activity);
+            state.readerModeFlags = 0;
+            token = state.token;
+            isResumed = state.resumed;
+        }
+        if (isResumed) {
+            setReaderMode(token, 0);
+        }
+
+    }
+
+    public void setReaderMode(Binder token, int flags) {
+        if (DBG) Log.d(TAG, "Setting reader mode");
+        try {
+            NfcAdapter.sService.setReaderMode(token, flags);
+        } catch (RemoteException e) {
+            mAdapter.attemptDeadServiceRecovery(e);
+        }
+    }
+
     public void setNdefPushContentUri(Activity activity, Uri[] uris) {
         boolean isResumed;
         synchronized (NfcActivityManager.this) {
@@ -341,11 +386,18 @@
     /** Callback from Activity life-cycle, on main thread */
     @Override
     public void onActivityResumed(Activity activity) {
+        int readerModeFlags = 0;
+        Binder token;
         synchronized (NfcActivityManager.this) {
             NfcActivityState state = findActivityState(activity);
             if (DBG) Log.d(TAG, "onResume() for " + activity + " " + state);
             if (state == null) return;
             state.resumed = true;
+            token = state.token;
+            readerModeFlags = state.readerModeFlags;
+        }
+        if (readerModeFlags != 0) {
+            setReaderMode(token, readerModeFlags);
         }
         requestNfcServiceCallback();
     }
@@ -353,11 +405,19 @@
     /** Callback from Activity life-cycle, on main thread */
     @Override
     public void onActivityPaused(Activity activity) {
+        boolean readerModeFlagsSet;
+        Binder token;
         synchronized (NfcActivityManager.this) {
             NfcActivityState state = findActivityState(activity);
             if (DBG) Log.d(TAG, "onPause() for " + activity + " " + state);
             if (state == null) return;
             state.resumed = false;
+            token = state.token;
+            readerModeFlagsSet = state.readerModeFlags != 0;
+        }
+        if (readerModeFlagsSet) {
+            // Restore default p2p modes
+            setReaderMode(token, 0);
         }
     }
 
@@ -381,5 +441,4 @@
             }
         }
     }
-
 }
diff --git a/core/java/android/nfc/NfcAdapter.java b/core/java/android/nfc/NfcAdapter.java
index 2a4f93c..fa0c1f6 100644
--- a/core/java/android/nfc/NfcAdapter.java
+++ b/core/java/android/nfc/NfcAdapter.java
@@ -195,6 +195,50 @@
     public static final int STATE_ON = 3;
     public static final int STATE_TURNING_OFF = 4;
 
+    /**
+     * Flag for use with {@link #enableReaderMode(Activity, int)}.
+     * <p>
+     * Setting this flag enables polling for Nfc-A technology.
+     */
+    public static final int FLAG_READER_NFC_A = 0x1;
+
+    /**
+     * Flag for use with {@link #enableReaderMode(Activity, int)}.
+     * <p>
+     * Setting this flag enables polling for Nfc-B technology.
+     */
+    public static final int FLAG_READER_NFC_B = 0x2;
+
+    /**
+     * Flag for use with {@link #enableReaderMode(Activity, int)}.
+     * <p>
+     * Setting this flag enables polling for Nfc-F technology.
+     */
+    public static final int FLAG_READER_NFC_F = 0x4;
+
+    /**
+     * Flag for use with {@link #enableReaderMode(Activity, int)}.
+     * <p>
+     * Setting this flag enables polling for Nfc-V (ISO15693) technology.
+     */
+    public static final int FLAG_READER_NFC_V = 0x8;
+
+    /**
+     * Flag for use with {@link #enableReaderMode(Activity, int)}.
+     * <p>
+     * Setting this flag enables polling for Kovio technology.
+     */
+    public static final int FLAG_READER_KOVIO = 0x10;
+
+    /**
+     * Flag for use with {@link #enableReaderMode(Activity, int)}.
+     * <p>
+     * Setting this flag allows the caller to prevent the
+     * platform from performing an NDEF check on the tags it
+     * finds.
+     */
+    public static final int FLAG_READER_SKIP_NDEF_CHECK = 0x80;
+
     /** @hide */
     public static final int FLAG_NDEF_PUSH_NO_CONFIRM = 0x1;
 
@@ -1112,6 +1156,44 @@
     }
 
     /**
+     * Limit the NFC controller to reader mode while this Activity is in the foreground.
+     *
+     * <p>In this mode the NFC controller will only act as an NFC tag reader/writer,
+     * thus disabling any peer-to-peer (Android Beam) and card-emulation modes of
+     * the NFC adapter on this device.
+     *
+     * <p>Use {@link #FLAG_READER_SKIP_NDEF_CHECK} to prevent the platform from
+     * performing any NDEF checks in reader mode. Note that this will prevent the
+     * {@link Ndef} tag technology from being enumerated on the tag, and that
+     * NDEF-based tag dispatch will not be functional.
+     *
+     * <p>It is recommended to combine this method with
+     * {@link #enableForegroundDispatch(Activity, PendingIntent, IntentFilter[], String[][])
+     * to ensure that tags are delivered to this activity.
+     *
+     * <p>For interacting with tags that are emulated on another Android device
+     * using Android's host-based card-emulation, the recommended flags are
+     * {@link #FLAG_READER_NFC_A} and {@link #FLAG_READER_SKIP_NDEF_CHECK}.
+     *
+     * @param activity the Activity that requests the adapter to be in reader mode
+     * @param flags Flags indicating poll technologies and other optional parameters
+     */
+    public void enableReaderMode(Activity activity, int flags) {
+        mNfcActivityManager.enableReaderMode(activity, flags);
+    }
+
+    /**
+     * Restore the NFC adapter to normal mode of operation: supporting
+     * peer-to-peer (Android Beam), card emulation, and polling for
+     * all supported tag technologies.
+     *
+     * @param activity the Activity that currently has reader mode enabled
+     */
+    public void disableReaderMode(Activity activity) {
+        mNfcActivityManager.disableReaderMode(activity);
+    }
+
+    /**
      * Enable NDEF message push over NFC while this Activity is in the foreground.
      *
      * <p>You must explicitly call this method every time the activity is
diff --git a/core/java/android/nfc/cardemulation/ApduServiceInfo.java b/core/java/android/nfc/cardemulation/ApduServiceInfo.java
index 3f7e3ef..b83911a 100644
--- a/core/java/android/nfc/cardemulation/ApduServiceInfo.java
+++ b/core/java/android/nfc/cardemulation/ApduServiceInfo.java
@@ -75,16 +75,22 @@
     final HashMap<String, AidGroup> mCategoryToGroup;
 
     /**
+     * Whether this service should only be started when the device is unlocked.
+     */
+    final boolean mRequiresDeviceUnlock;
+
+    /**
      * @hide
      */
     public ApduServiceInfo(ResolveInfo info, boolean onHost, String description,
-            ArrayList<AidGroup> aidGroups) {
+            ArrayList<AidGroup> aidGroups, boolean requiresUnlock) {
         this.mService = info;
         this.mDescription = description;
         this.mAidGroups = aidGroups;
         this.mAids = new ArrayList<String>();
         this.mCategoryToGroup = new HashMap<String, AidGroup>();
         this.mOnHost = onHost;
+        this.mRequiresDeviceUnlock = requiresUnlock;
         for (AidGroup aidGroup : aidGroups) {
             this.mCategoryToGroup.put(aidGroup.category, aidGroup);
             this.mAids.addAll(aidGroup.aids);
@@ -132,12 +138,16 @@
                 mService = info;
                 mDescription = sa.getString(
                         com.android.internal.R.styleable.HostApduService_description);
+                mRequiresDeviceUnlock = sa.getBoolean(
+                        com.android.internal.R.styleable.HostApduService_requireDeviceUnlock,
+                        false);
             } else {
                 TypedArray sa = res.obtainAttributes(attrs,
                         com.android.internal.R.styleable.OffHostApduService);
                 mService = info;
                 mDescription = sa.getString(
                         com.android.internal.R.styleable.OffHostApduService_description);
+                mRequiresDeviceUnlock = false;
             }
 
             mAidGroups = new ArrayList<AidGroup>();
@@ -226,6 +236,10 @@
         return mOnHost;
     }
 
+    public boolean requiresUnlock() {
+        return mRequiresDeviceUnlock;
+    }
+
     public CharSequence loadLabel(PackageManager pm) {
         return mService.loadLabel(pm);
     }
@@ -287,6 +301,7 @@
         if (mAidGroups.size() > 0) {
             dest.writeTypedList(mAidGroups);
         }
+        dest.writeInt(mRequiresDeviceUnlock ? 1 : 0);
     };
 
     public static final Parcelable.Creator<ApduServiceInfo> CREATOR =
@@ -301,7 +316,8 @@
             if (numGroups > 0) {
                 source.readTypedList(aidGroups, AidGroup.CREATOR);
             }
-            return new ApduServiceInfo(info, onHost, description, aidGroups);
+            boolean requiresUnlock = (source.readInt() != 0) ? true : false;
+            return new ApduServiceInfo(info, onHost, description, aidGroups, requiresUnlock);
         }
 
         @Override
diff --git a/core/java/android/nfc/cardemulation/CardEmulationManager.java b/core/java/android/nfc/cardemulation/CardEmulationManager.java
index 537fded..9d60c73 100644
--- a/core/java/android/nfc/cardemulation/CardEmulationManager.java
+++ b/core/java/android/nfc/cardemulation/CardEmulationManager.java
@@ -27,6 +27,7 @@
 import android.nfc.NfcAdapter;
 import android.os.RemoteException;
 import android.os.UserHandle;
+import android.provider.Settings;
 import android.util.Log;
 
 import java.util.HashMap;
@@ -78,20 +79,69 @@
      */
     public static final String CATEGORY_OTHER = "other";
 
+    /**
+     * Return value for {@link #getSelectionModeForCategory(String)}.
+     *
+     * <p>In this mode, the user has set a default service for this
+     *    AID category. If a remote reader selects any of the AIDs
+     *    that the default service has registered in this category,
+     *    that service will automatically be bound to to handle
+     *    the transaction.
+     *
+     * <p>There are still cases where a service that is
+     *    not the default for a category can selected:
+     *    <p>
+     *    If a remote reader selects an AID in this category
+     *    that is not handled by the default service, and there is a set
+     *    of other services {S} that do handle this AID, the
+     *    user is asked if he wants to use any of the services in
+     *    {S} instead.
+     *    <p>
+     *    As a special case, if the size of {S} is one, containing a single service X,
+     *    and all AIDs X has registered in this category are not
+     *    registered by any other service, then X will be
+     *    selected automatically without asking the user.
+     *    <p>Example:
+     *    <ul>
+     *    <li>Service A registers AIDs "1", "2" and "3" in the category
+     *    <li>Service B registers AIDs "3" and "4" in the category
+     *    <li>Service C registers AIDs "5" and "6" in the category
+     *    </ul>
+     *    In this case, the following will happen when service A
+     *    is the default:
+     *    <ul>
+     *    <li>Reader selects AID "1", "2" or "3": service A is invoked automatically
+     *    <li>Reader selects AID "4": the user is asked to confirm he
+     *        wants to use service B, because its AIDs overlap with service A.
+     *    <li>Reader selects AID "5" or "6": service C is invoked automatically,
+     *        because all AIDs it has asked for are only registered by C,
+     *        and there is no overlap.
+     *    </ul>
+     *
+     */
+    public static final int SELECTION_MODE_PREFER_DEFAULT = 0;
+
+    /**
+     * Return value for {@link #getSelectionModeForCategory(String)}.
+     *
+     * <p>In this mode, whenever an AID of this category is selected,
+     *    the user is asked which service he wants to use to handle
+     *    the transaction, even if there is only one matching service.
+     */
+    public static final int SELECTION_MODE_ALWAYS_ASK = 1;
+
+    /**
+     * Return value for {@link #getSelectionModeForCategory(String)}.
+     *
+     * <p>In this mode, the user will only be asked to select a service
+     *    if the selected AID has been registered by multiple applications.
+     */
+    public static final int SELECTION_MODE_ASK_IF_CONFLICT = 2;
+
     static boolean sIsInitialized = false;
     static HashMap<Context, CardEmulationManager> sCardEmuManagers = new HashMap();
     static INfcCardEmulation sService;
 
-    /**
-     * @hide
-     */
-    public static final String PAYMENT_MODE_AUTO = "auto";
-
-    /**
-     * @hide
-     */
-    public static final String PAYMENT_MODE_MANUAL = "manual";
-
     final Context mContext;
 
     private CardEmulationManager(Context context, INfcCardEmulation service) {
@@ -113,7 +163,7 @@
                 throw new UnsupportedOperationException();
             }
             try {
-                if (!pm.hasSystemFeature(PackageManager.FEATURE_NFC_HCE)) {
+                if (!pm.hasSystemFeature(PackageManager.FEATURE_NFC_HOST_CARD_EMULATION)) {
                     Log.e(TAG, "This device does not support card emulation");
                     throw new UnsupportedOperationException();
                 }
@@ -137,6 +187,10 @@
      * Allows an application to query whether a service is currently
      * the default service to handle a card emulation category.
      *
+     * <p>Note that if {@link #getSelectionModeForCategory(String)}
+     * returns {@link #SELECTION_MODE_ALWAYS_ASK}, this method will always
+     * return false.
+     *
      * @param service The ComponentName of the service
      * @param category The category
      * @return whether service is currently the default service for the category.
@@ -147,6 +201,10 @@
         } catch (RemoteException e) {
             // Try one more time
             recoverService();
+            if (sService == null) {
+                Log.e(TAG, "Failed to recover CardEmulationService.");
+                return false;
+            }
             try {
                 return sService.isDefaultServiceForCategory(UserHandle.myUserId(), service,
                         category);
@@ -186,6 +244,33 @@
     }
 
     /**
+     * Returns the application selection mode for the passed in category.
+     * Valid return values are:
+     * <p>{@link #SELECTION_MODE_PREFER_DEFAULT} the user has requested a default
+     *    application for this category, which will be preferred.
+     * <p>{@link #SELECTION_MODE_ALWAYS_ASK} the user has requested to be asked
+     *    every time what app he would like to use in this category.
+     * <p>{@link #SELECTION_MODE_ASK_IF_CONFLICT} the user will only be asked
+     *    to pick a service if there is a conflict.
+     * @param category The category, for example {@link #CATEGORY_PAYMENT}
+     * @return
+     */
+    public int getSelectionModeForCategory(String category) {
+        if (CATEGORY_PAYMENT.equals(category)) {
+            String defaultComponent = Settings.Secure.getString(mContext.getContentResolver(),
+                    Settings.Secure.NFC_PAYMENT_DEFAULT_COMPONENT);
+            if (defaultComponent != null) {
+                return SELECTION_MODE_PREFER_DEFAULT;
+            } else {
+                return SELECTION_MODE_ALWAYS_ASK;
+            }
+        } else {
+            // All other categories are in "only ask if conflict" mode
+            return SELECTION_MODE_ASK_IF_CONFLICT;
+        }
+    }
+
+    /**
      * @hide
      */
     public boolean setDefaultServiceForCategory(ComponentName service, String category) {
diff --git a/core/java/android/nfc/cardemulation/HostApduService.java b/core/java/android/nfc/cardemulation/HostApduService.java
index cdc4adb..ae94b2f 100644
--- a/core/java/android/nfc/cardemulation/HostApduService.java
+++ b/core/java/android/nfc/cardemulation/HostApduService.java
@@ -4,13 +4,11 @@
 import android.annotation.SdkConstant.SdkConstantType;
 import android.app.Service;
 import android.content.Intent;
-import android.os.Binder;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Message;
 import android.os.Messenger;
-import android.os.Parcel;
 import android.os.RemoteException;
 import android.util.Log;
 
diff --git a/core/java/android/os/Debug.java b/core/java/android/os/Debug.java
index 0a6db25..60ce132 100644
--- a/core/java/android/os/Debug.java
+++ b/core/java/android/os/Debug.java
@@ -639,16 +639,19 @@
      *
      * @hide
      */
-    public static void startMethodTracingDdms(int bufferSize, int flags) {
-        VMDebug.startMethodTracingDdms(bufferSize, flags);
+    public static void startMethodTracingDdms(int bufferSize, int flags,
+        boolean samplingEnabled, int intervalUs) {
+        VMDebug.startMethodTracingDdms(bufferSize, flags, samplingEnabled, intervalUs);
     }
 
     /**
-     * Determine whether method tracing is currently active.
+     * Determine whether method tracing is currently active and what type is
+     * active.
+     *
      * @hide
      */
-    public static boolean isMethodTracingActive() {
-        return VMDebug.isMethodTracingActive();
+    public static int getMethodTracingMode() {
+        return VMDebug.getMethodTracingMode();
     }
 
     /**
diff --git a/core/java/android/print/IPrintManager.aidl b/core/java/android/print/IPrintManager.aidl
index 3bfd9a1..fb6bb2e 100644
--- a/core/java/android/print/IPrintManager.aidl
+++ b/core/java/android/print/IPrintManager.aidl
@@ -41,7 +41,9 @@
     void startPrinterDiscovery(in IPrinterDiscoveryObserver observer,
             in List<PrinterId> priorityList, int userId);
     void stopPrinterDiscovery(in IPrinterDiscoveryObserver observer, int userId);
-    void requestPrinterUpdate(in PrinterId printerId, int userId);
+    void validatePrinters(in List<PrinterId> printerIds, int userId);
+    void startPrinterStateTracking(in PrinterId printerId, int userId);
+    void stopPrinterStateTracking(in PrinterId printerId, int userId);
     void destroyPrinterDiscoverySession(in IPrinterDiscoveryObserver observer,
             int userId);
 }
diff --git a/core/java/android/print/PageRange.java b/core/java/android/print/PageRange.java
index ba455f6..cdcd0c7 100644
--- a/core/java/android/print/PageRange.java
+++ b/core/java/android/print/PageRange.java
@@ -42,8 +42,6 @@
      * @throws IllegalArgumentException If start is less than zero.
      * @throws IllegalArgumentException If end is less than zero.
      * @throws IllegalArgumentException If start greater than end.
-     *
-     * @hide
      */
     public PageRange(int start, int end) {
         if (start < 0) {
diff --git a/core/java/android/print/PrintAttributes.java b/core/java/android/print/PrintAttributes.java
index a902c72..caa10ae 100644
--- a/core/java/android/print/PrintAttributes.java
+++ b/core/java/android/print/PrintAttributes.java
@@ -50,9 +50,15 @@
 
 
     /** Fitting mode: No fitting. */
-    public static final int FITTING_MODE_NONE = 0x00000001;
-    /** Fitting mode: Fit the content to the page. */
-    public static final int FITTING_MODE_FIT_TO_PAGE = 0x00000002;
+    public static final int FITTING_MODE_NONE = 1 << 0;
+    /** Fitting mode: Scale the content to fit in the page
+     * without cropping it in any dimension. */
+    public static final int FITTING_MODE_SCALE_TO_FIT = 1 << 1;
+    /**
+     * Fitting mode: Uniformly scale the content to fill the entire page
+     * potentially cropping the content if it overflows in one dimension.
+     */
+    public static final int FITTING_MODE_SCALE_TO_FILL = 1 << 2;
 
 
     private static final int VALID_DUPLEX_MODES =
@@ -62,7 +68,7 @@
             COLOR_MODE_MONOCHROME | COLOR_MODE_COLOR;
 
     private static final int VALID_FITTING_MODES =
-            FITTING_MODE_NONE | FITTING_MODE_FIT_TO_PAGE;
+            FITTING_MODE_NONE | FITTING_MODE_SCALE_TO_FIT | FITTING_MODE_SCALE_TO_FILL;
 
     private static final int VALID_ORIENTATIONS =
             ORIENTATION_PORTRAIT | ORIENTATION_LANDSCAPE;
@@ -252,7 +258,8 @@
      * @return The fitting mode or zero if not set.
      *
      * @see #FITTING_MODE_NONE
-     * @see #FITTING_MODE_FIT_TO_PAGE
+     * @see #FITTING_MODE_SCALE_TO_FILL
+     * @see #FITTING_MODE_SCALE_TO_FIT
      */
     public int getFittingMode() {
         return mFittingMode;
@@ -264,12 +271,13 @@
      * @param The fitting mode.
      *
      * @see #FITTING_MODE_NONE
-     * @see #FITTING_MODE_FIT_TO_PAGE
+     * @see #FITTING_MODE_SCALE_TO_FILL
+     * @see #FITTING_MODE_SCALE_TO_FIT
      *
      * @hide
      */
     public void setFittingMode(int fittingMode) {
-        enfoceValidFittingMode(fittingMode);
+        enforceValidFittingMode(fittingMode);
         mFittingMode = fittingMode;
     }
 
@@ -1220,6 +1228,8 @@
      * This class specifies content margins.
      */
     public static final class Margins {
+        public static final Margins NO_MARGINS = new Margins(0,  0,  0,  0);
+
         private final int mLeftMils;
         private final int mTopMils;
         private final int mRightMils;
@@ -1232,24 +1242,13 @@
          * @param topMils The top margin in mils (thousands of an inch).
          * @param rightMils The right margin in mils (thousands of an inch).
          * @param bottomMils The bottom margin in mils (thousands of an inch).
-         *
-         * @throws IllegalArgumentException If the leftMils is less than zero.
-         * @throws IllegalArgumentException If the topMils is less than zero.
-         * @throws IllegalArgumentException If the rightMils is less than zero.
-         * @throws IllegalArgumentException If the bottomMils is less than zero.
          */
         public Margins(int leftMils, int topMils, int rightMils, int bottomMils) {
-            if (leftMils < 0) {
-                throw new IllegalArgumentException("leftMils cannot be less than zero.");
+            if (leftMils > rightMils) {
+                throw new IllegalArgumentException("leftMils cannot be less than rightMils.");
             }
-            if (topMils < 0) {
-                throw new IllegalArgumentException("topMils cannot be less than zero.");
-            }
-            if (rightMils < 0) {
-                throw new IllegalArgumentException("rightMils cannot be less than zero.");
-            }
-            if (bottomMils < 0) {
-                throw new IllegalArgumentException("bottomMils cannot be less than zero.");
+            if (topMils > bottomMils) {
+                throw new IllegalArgumentException("topMils cannot be less than bottomMils.");
             }
             mTopMils = topMils;
             mLeftMils = leftMils;
@@ -1504,8 +1503,11 @@
             case FITTING_MODE_NONE: {
                 return "FITTING_MODE_NONE";
             }
-            case FITTING_MODE_FIT_TO_PAGE: {
-                return "FITTING_MODE_FIT_TO_PAGE";
+            case FITTING_MODE_SCALE_TO_FIT: {
+                return "FITTING_MODE_SCALE_TO_FIT";
+            }
+            case FITTING_MODE_SCALE_TO_FILL: {
+                return "FITTING_MODE_SCALE_TO_FILL";
             }
             default:
                 return "FITTING_MODE_UNKNOWN";
@@ -1513,25 +1515,25 @@
     }
 
     static void enforceValidDuplexMode(int duplexMode) {
-        if ((duplexMode & VALID_DUPLEX_MODES) == 0) {
+        if ((duplexMode & VALID_DUPLEX_MODES) == 0 && Integer.bitCount(duplexMode) == 1) {
             throw new IllegalArgumentException("invalid duplex mode: " + duplexMode);
         }
     }
 
     static void enforceValidColorMode(int colorMode) {
-        if ((colorMode & VALID_COLOR_MODES) == 0) {
+        if ((colorMode & VALID_COLOR_MODES) == 0 && Integer.bitCount(colorMode) == 1) {
             throw new IllegalArgumentException("invalid color mode: " + colorMode);
         }
     }
 
-    static void enfoceValidFittingMode(int fittingMode) {
-        if ((fittingMode & VALID_FITTING_MODES) == 0) {
+    static void enforceValidFittingMode(int fittingMode) {
+        if ((fittingMode & VALID_FITTING_MODES) == 0 && Integer.bitCount(fittingMode) == 1) {
             throw new IllegalArgumentException("invalid fitting mode: " + fittingMode);
         }
     }
 
     static void enforceValidOrientation(int orientation) {
-        if ((orientation & VALID_ORIENTATIONS) == 0) {
+        if ((orientation & VALID_ORIENTATIONS) == 0 && Integer.bitCount(orientation) == 1) {
             throw new IllegalArgumentException("invalid orientation: " + orientation);
         }
     }
diff --git a/core/java/android/print/PrintDocumentAdapter.java b/core/java/android/print/PrintDocumentAdapter.java
index d320226..33b4aad 100644
--- a/core/java/android/print/PrintDocumentAdapter.java
+++ b/core/java/android/print/PrintDocumentAdapter.java
@@ -18,8 +18,8 @@
 
 import android.os.Bundle;
 import android.os.CancellationSignal;
+import android.os.ParcelFileDescriptor;
 
-import java.io.FileDescriptor;
 import java.util.List;
 
 /**
@@ -41,7 +41,7 @@
  * <li>
  * After every call to {@link #onLayout(PrintAttributes, PrintAttributes,
  * CancellationSignal, LayoutResultCallback, Bundle)}, you may get a call to
- * {@link #onWrite(PageRange[], FileDescriptor, CancellationSignal, WriteResultCallback)}
+ * {@link #onWrite(PageRange[], ParcelFileDescriptor, CancellationSignal, WriteResultCallback)}
  * asking you to write a PDF file with the content for specific pages.
  * </li>
  * <li>
@@ -64,7 +64,7 @@
  * PrintAttributes, CancellationSignal, LayoutResultCallback, Bundle)} on
  * the UI thread (assuming onStart initializes resources needed for layout).
  * This will ensure that the UI does not change while you are laying out the
- * printed content. Then you can handle {@link #onWrite(PageRange[], FileDescriptor,
+ * printed content. Then you can handle {@link #onWrite(PageRange[], ParcelFileDescriptor,
  * CancellationSignal, WriteResultCallback)} and {@link #onFinish()} on another
  * thread. This will ensure that the UI is frozen for the minimal amount of
  * time. Also this assumes that you will generate the printed content in
@@ -101,6 +101,28 @@
      * LayoutResultCallback#onLayoutFailed(CharSequence)}, if an error occurred.
      * </p>
      * <p>
+     * When doing a layout you may satisfy some of the constraints in the print
+     * attributes such as applying the appropriate fitting, emitting content in the
+     * requested orientation, using the specified margins, generating content with
+     * the desired color mode, producing output with the given media size. Ideally,
+     * you will satisfy all of these constraints. It is important that if you
+     * satisfy a given constraint, you update the {@link PrintDocumentInfo} that
+     * is returned in the given {@link LayoutResultCallback}. This way the printer
+     * will have more accurate information about the content, thus producing a
+     * better output. For example, assume that your application is printing
+     * an image and the print attributes request landscape and fitting mode scale
+     * to fill. The result of this operation should be the entire media is filled
+     * and the content is rotated ninety degrees. In this case it is beneficial
+     * you do the rotation and select a higher resolution image to utilize
+     * the wider media (the height is now the width), rather to use a lower
+     * resolution image that is later stretched by the printer. If you applied
+     * the rotation you have to update the returned print document info to
+     * reflect that the content is already in landscape by calling
+     * {@link PrintDocumentInfo.Builder#setOrientation(int)} with {@link
+     * PrintAttributes#ORIENTATION_LANDSCAPE}. In this case the printer does not
+     * have to rotate the content.
+     * </p>
+     * <p>
      * <strong>Note:</strong> If the content is large and a layout will be
      * performed, it is a good practice to schedule the work on a dedicated
      * thread and register an observer in the provided {@link
@@ -128,10 +150,10 @@
      * from of a PDF file to the given file descriptor. This method is invoked
      * on the main thread.
      *<p>
-     * After you are done writing, you should <strong>not</strong> close the
-     * file descriptor, rather you must invoke: {@link WriteResultCallback
-     * #onWriteFinished(List)}, if writing completed successfully; or {@link
-     * WriteResultCallback#onWriteFailed(CharSequence)}, if an error occurred.
+     * After you are done writing, you should close the file descriptor and
+     * invoke {@link WriteResultCallback #onWriteFinished(List)}, if writing
+     * completed successfully; or {@link WriteResultCallback#onWriteFailed(
+     * CharSequence)}, if an error occurred.
      * </p>
      * <p>
      * <strong>Note:</strong> If the printed content is large, it is a good
@@ -149,7 +171,7 @@
      * @see WriteResultCallback
      * @see CancellationSignal
      */
-    public abstract void onWrite(PageRange[] pages, FileDescriptor destination,
+    public abstract void onWrite(PageRange[] pages, ParcelFileDescriptor destination,
             CancellationSignal cancellationSignal, WriteResultCallback callback);
 
     /**
@@ -163,7 +185,7 @@
 
     /**
      * Base class for implementing a callback for the result of {@link
-     * PrintDocumentAdapter#onWrite(PageRange[], FileDescriptor, CancellationSignal,
+     * PrintDocumentAdapter#onWrite(PageRange[], ParcelFileDescriptor, CancellationSignal,
      * WriteResultCallback)}.
      */
     public static abstract class WriteResultCallback {
diff --git a/core/java/android/print/PrintDocumentInfo.java b/core/java/android/print/PrintDocumentInfo.java
index 653ad4b..f2b91ae 100644
--- a/core/java/android/print/PrintDocumentInfo.java
+++ b/core/java/android/print/PrintDocumentInfo.java
@@ -18,6 +18,8 @@
 
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.print.PrintAttributes.Margins;
+import android.print.PrintAttributes.MediaSize;
 import android.text.TextUtils;
 
 /**
@@ -26,12 +28,17 @@
 public final class PrintDocumentInfo implements Parcelable {
 
     /**
-     * Constant for unknown page count (default).
+     * Constant for an unknown media size.
+     */
+    public static final MediaSize MEDIA_SIZE_UNKNOWN = new MediaSize("Unknown", "Unknown", 1, 1);
+
+    /**
+     * Constant for unknown page count..
      */
     public static final int PAGE_COUNT_UNKNOWN = -1;
 
     /**
-     * Content type: unknown (default).
+     * Content type: unknown.
      */
     public static final int CONTENT_TYPE_UNKNOWN = -1;
 
@@ -48,13 +55,18 @@
     private String mName;
     private int mPageCount;
     private int mContentType;
+    private int mOrientation;
+    private int mFittingMode;
+    private int mColorMode;
+    private Margins mMargins;
+    private MediaSize mMediaSize;
+    private long mDataSize;
 
     /**
      * Creates a new instance.
      */
     private PrintDocumentInfo() {
-        mPageCount = PAGE_COUNT_UNKNOWN;
-        mContentType = CONTENT_TYPE_UNKNOWN;
+        /* do nothing */
     }
 
     /**
@@ -66,6 +78,12 @@
         mName = prototype.mName;
         mPageCount = prototype.mPageCount;
         mContentType = prototype.mContentType;
+        mOrientation = prototype.mOrientation;
+        mFittingMode = prototype.mFittingMode;
+        mColorMode = prototype.mColorMode;
+        mMargins = prototype.mMargins;
+        mMediaSize = prototype.mMediaSize;
+        mDataSize = prototype.mDataSize;
     }
 
     /**
@@ -77,6 +95,12 @@
         mName = parcel.readString();
         mPageCount = parcel.readInt();
         mContentType = parcel.readInt();
+        mOrientation = parcel.readInt();
+        mFittingMode = parcel.readInt();
+        mColorMode = parcel.readInt();
+        mMargins = Margins.createFromParcel(parcel);
+        mMediaSize = MediaSize.createFromParcel(parcel);
+        mDataSize = parcel.readLong();
     }
 
     /**
@@ -112,6 +136,81 @@
         return mContentType;
     }
 
+    /**
+     * Gets the document orientation.
+     *
+     * @return The orientation.
+     *
+     * @see PrintAttributes#ORIENTATION_PORTRAIT PrintAttributes.ORIENTATION_PORTRAIT
+     * @see PrintAttributes#ORIENTATION_LANDSCAPE PrintAttributes.ORIENTATION_LANDSCAPE
+     */
+    public int getOrientation() {
+        return mOrientation;
+    }
+
+    /**
+     * Gets the document fitting mode.
+     *
+     * @return The fitting mode.
+     *
+     * @see PrintAttributes#FITTING_MODE_NONE PrintAttributes.FITTING_MODE_NONE
+     * @see PrintAttributes#FITTING_MODE_SCALE_TO_FILL PrintAttributes.FITTING_MODE_SCALE_TO_FILL
+     * @see PrintAttributes#FITTING_MODE_SCALE_TO_FIT PrintAttributes.FITTING_MODE_SCALE_TO_FIT
+     */
+    public int getFittingMode() {
+        return mFittingMode;
+    }
+
+    /**
+     * Gets document color mode.
+     *
+     * @return The color mode.
+     *
+     * @see PrintAttributes#COLOR_MODE_COLOR PrintAttributes.COLOR_MODE_COLOR
+     * @see PrintAttributes#COLOR_MODE_MONOCHROME PrintAttributes.COLOR_MODE_MONOCHROME
+     */
+    public int getColorMode() {
+        return mColorMode;
+    }
+
+    /**
+     * Gets the document margins.
+     *
+     * @return The margins.
+     */
+    public Margins getMargins() {
+        return mMargins;
+    }
+
+    /**
+     * Gets the media size.
+     *
+     * @return The media size.
+     */
+    public MediaSize getMediaSize() {
+        return mMediaSize;
+    }
+
+    /**
+     * Gets the document data size in bytes.
+     *
+     * @return The data size.
+     */
+    public long getDataSize() {
+        return mDataSize;
+    }
+
+    /**
+     * Sets the document data size in bytes.
+     *
+     * @param dataSize The data size.
+     *
+     * @hide
+     */
+    public void setDataSize(long dataSize) {
+        mDataSize = dataSize;
+    }
+
     @Override
     public int describeContents() {
         return 0;
@@ -122,6 +221,12 @@
         parcel.writeString(mName);
         parcel.writeInt(mPageCount);
         parcel.writeInt(mContentType);
+        parcel.writeInt(mOrientation);
+        parcel.writeInt(mFittingMode);
+        parcel.writeInt(mColorMode);
+        mMargins.writeToParcel(parcel);
+        mMediaSize.writeToParcel(parcel);
+        parcel.writeLong(mDataSize);
     }
 
     @Override
@@ -131,6 +236,13 @@
         result = prime * result + ((mName != null) ? mName.hashCode() : 0);
         result = prime * result + mContentType;
         result = prime * result + mPageCount;
+        result = prime * result + mOrientation;
+        result = prime * result + mFittingMode;
+        result = prime * result + mColorMode;
+        result = prime * result + (mMargins != null ? mMargins.hashCode() : 0);
+        result = prime * result + (mMediaSize != null ? mMediaSize.hashCode() : 0);
+        result = prime * result + (int) mDataSize;
+        result = prime * result + (int) mDataSize >> 32;
         return result;
     }
 
@@ -155,6 +267,32 @@
         if (mPageCount != other.mPageCount) {
             return false;
         }
+        if (mOrientation != other.mOrientation) {
+            return false;
+        }
+        if (mFittingMode != other.mFittingMode) {
+            return false;
+        }
+        if (mColorMode != other.mColorMode) {
+            return false;
+        }
+        if (mMargins == null) {
+            if (other.mMargins != null) {
+                return false;
+            }
+        } else if (!mMargins.equals(other.mMargins)) {
+            return false;
+        }
+        if (mMediaSize == null) {
+            if (other.mMediaSize != null) {
+                return false;
+            }
+        } else if (!mMediaSize.equals(other.mMediaSize)) {
+            return false;
+        }
+        if (mDataSize != other.mDataSize) {
+            return false;
+        }
         return true;
     }
 
@@ -165,6 +303,12 @@
         builder.append("name=").append(mName);
         builder.append(", pageCount=").append(mPageCount);
         builder.append(", contentType=").append(contentTyepToString(mContentType));
+        builder.append(", orientation=").append(PrintAttributes.orientationToString(mOrientation));
+        builder.append(", fittingMode=").append(PrintAttributes.fittingModeToString(mFittingMode));
+        builder.append(", colorMode=").append(PrintAttributes.colorModeToString(mColorMode));
+        builder.append(", margins=").append(mMargins);
+        builder.append(", mediaSize=").append(mMediaSize);
+        builder.append(", size=").append(mDataSize);
         builder.append("}");
         return builder.toString();
     }
@@ -191,21 +335,62 @@
 
         /**
          * Constructor.
+         * <p>
+         * The values of the relevant properties are initialized from the
+         * provided print attributes. For example, the orientation is set
+         * to be the same as the orientation returned by calling {@link
+         * PrintAttributes#getOrientation() PrintAttributes.getOrientation()}.
+         * </p>
          *
          * @param name The document name. Cannot be empty.
+         * @param attributes Print attributes. Cannot be null.
          *
          * @throws IllegalArgumentException If the name is empty.
          */
+        public Builder(String name, PrintAttributes attributes) {
+            if (TextUtils.isEmpty(name)) {
+                throw new IllegalArgumentException("name cannot be empty");
+            }
+            if (attributes == null) {
+                throw new IllegalArgumentException("attributes cannot be null");
+            }
+            mPrototype = new PrintDocumentInfo();
+            mPrototype.mName = name;
+            mPrototype.mOrientation = attributes.getOrientation();
+            mPrototype.mFittingMode = attributes.getFittingMode();
+            mPrototype.mColorMode = attributes.getColorMode();
+            mPrototype.mMargins = attributes.getMargins();
+            mPrototype.mMediaSize = attributes.getMediaSize();
+        }
+
+        /**
+         * Constructor.
+         * <p>
+         * The values of the relevant properties are initialized with default
+         * values. Please refer to the documentation of the individual setters
+         * for information about the default values.
+         * </p>
+         *
+         * @param name The document name. Cannot be empty. 
+         */
         public Builder(String name) {
             if (TextUtils.isEmpty(name)) {
                 throw new IllegalArgumentException("name cannot be empty");
             }
             mPrototype = new PrintDocumentInfo();
             mPrototype.mName = name;
+            mPrototype.mOrientation = PrintAttributes.ORIENTATION_PORTRAIT;
+            mPrototype.mFittingMode = PrintAttributes.FITTING_MODE_NONE;
+            mPrototype.mColorMode = PrintAttributes.COLOR_MODE_COLOR;
+            mPrototype.mMargins = Margins.NO_MARGINS;
+            mPrototype.mMediaSize = MEDIA_SIZE_UNKNOWN;
         }
 
         /**
          * Sets the total number of pages.
+         * <p>
+         * <strong>Default: </strong> {@link #PAGE_COUNT_UNKNOWN}
+         * </p>
          *
          * @param pageCount The number of pages. Must be greater than
          * or equal to zero or {@link PrintDocumentInfo#PAGE_COUNT_UNKNOWN}.
@@ -222,6 +407,9 @@
 
         /**
          * Sets the content type.
+         * <p>
+         * <strong>Default: </strong> {@link #CONTENT_TYPE_UNKNOWN}
+         * </p>
          *
          * @param type The content type.
          *
@@ -235,6 +423,95 @@
         }
 
         /**
+         * Sets the orientation.
+         * <p>
+         * <strong>Default: </strong> {@link PrintAttributes#ORIENTATION_PORTRAIT
+         * PrintAttributes.ORIENTATION_PORTRAIT}
+         * </p>
+         *
+         * @param orientation The orientation.
+         *
+         * @see PrintAttributes#ORIENTATION_PORTRAIT PrintAttributes.ORIENTATION_PORTRAIT
+         * @see PrintAttributes#ORIENTATION_LANDSCAPE PrintAttributes.ORIENTATION_LANDSCAPE
+         */
+        public Builder setOrientation(int orientation) {
+            PrintAttributes.enforceValidOrientation(orientation);
+            mPrototype.mOrientation = orientation;
+            return this;
+        }
+
+        /**
+         * Sets the content fitting mode.
+         * <p>
+         * <strong>Default: </strong> {@link PrintAttributes#FITTING_MODE_NONE
+         * PrintAttributes.FITTING_MODE_NONE}
+         * </p>
+         *
+         * @param fittingMode The fitting mode.
+         *
+         * @see PrintAttributes#FITTING_MODE_NONE PrintAttributes.FITTING_MODE_NONE
+         * @see PrintAttributes#FITTING_MODE_SCALE_TO_FILL PrintAttributes.FITTING_MODE_SCALE_TO_FILL
+         * @see PrintAttributes#FITTING_MODE_SCALE_TO_FIT PrintAttributes.FITTING_MODE_SCALE_TO_FIT
+         */
+        public Builder setFittingMode(int fittingMode) {
+            PrintAttributes.enforceValidFittingMode(fittingMode);
+            mPrototype.mFittingMode = fittingMode;
+            return this;
+        }
+
+        /**
+         * Sets the content color mode.
+         * <p>
+         * <strong>Default: </strong> {@link PrintAttributes#COLOR_MODE_COLOR
+         * PrintAttributes.COLOR_MODE_COLOR}
+         * </p>
+         *
+         * @param colorMode The color mode.
+         *
+         * @see PrintAttributes#COLOR_MODE_COLOR PrintAttributes.COLOR_MODE_COLOR
+         * @see PrintAttributes#COLOR_MODE_MONOCHROME PrintAttributes.COLOR_MODE_MONOCHROME
+         */
+        public Builder setColorMode(int colorMode) {
+            PrintAttributes.enforceValidColorMode(colorMode);
+            mPrototype.mColorMode = colorMode;
+            return this;
+        }
+
+        /**
+         * Sets the document margins.
+         * <p>
+         * <strong>Default: </strong> {@link PrintAttributes.Margins#NO_MARGINS Margins.NO_MARGINS}
+         * </p>
+         *
+         * @param margins The margins. Cannot be null.
+         */
+        public Builder setMargins(Margins margins) {
+            if (margins == null) {
+                throw new IllegalArgumentException("margins cannot be null");
+            }
+            mPrototype.mMargins = margins;
+            return this;
+        }
+
+        /**
+         * Sets the document media size.
+         * <p>
+         * <strong>Default: </strong>#MEDIA_SIZE_UNKNOWN
+         * </p>
+         *
+         * @param mediaSize The media size. Cannot be null.
+         *
+         * @see #MEDIA_SIZE_UNKNOWN
+         */
+        public Builder setMediaSize(MediaSize mediaSize) {
+            if (mediaSize == null) {
+                throw new IllegalArgumentException("media size cannot be null");
+            }
+            mPrototype.mMediaSize = mediaSize;
+            return this;
+        }
+
+        /**
          * Creates a new {@link PrintDocumentInfo} instance.
          *
          * @return The new instance.
diff --git a/core/java/android/print/PrintFileDocumentAdapter.java b/core/java/android/print/PrintFileDocumentAdapter.java
index dbc8b6f..b905396 100644
--- a/core/java/android/print/PrintFileDocumentAdapter.java
+++ b/core/java/android/print/PrintFileDocumentAdapter.java
@@ -21,6 +21,7 @@
 import android.os.Bundle;
 import android.os.CancellationSignal;
 import android.os.CancellationSignal.OnCancelListener;
+import android.os.ParcelFileDescriptor;
 import android.util.Log;
 
 import com.android.internal.R;
@@ -28,7 +29,6 @@
 import libcore.io.IoUtils;
 
 import java.io.File;
-import java.io.FileDescriptor;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -81,7 +81,7 @@
     }
 
     @Override
-    public void onWrite(PageRange[] pages, FileDescriptor destination,
+    public void onWrite(PageRange[] pages, ParcelFileDescriptor destination,
             CancellationSignal cancellationSignal, WriteResultCallback callback) {
         mWriteFileAsyncTask = new WriteFileAsyncTask(destination, cancellationSignal, callback);
         mWriteFileAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,
@@ -90,13 +90,13 @@
 
     private final class WriteFileAsyncTask extends AsyncTask<Void, Void, Void> {
 
-        private final FileDescriptor mDestination;
+        private final ParcelFileDescriptor mDestination;
 
         private final WriteResultCallback mResultCallback;
 
         private final CancellationSignal mCancellationSignal;
 
-        public WriteFileAsyncTask(FileDescriptor destination,
+        public WriteFileAsyncTask(ParcelFileDescriptor destination,
                 CancellationSignal cancellationSignal, WriteResultCallback callback) {
             mDestination = destination;
             mResultCallback = callback;
@@ -112,7 +112,7 @@
         @Override
         protected Void doInBackground(Void... params) {
             InputStream in = null;
-            OutputStream out = new FileOutputStream(mDestination);
+            OutputStream out = new FileOutputStream(mDestination.getFileDescriptor());
             final byte[] buffer = new byte[8192];
             try {
                 in = new FileInputStream(mFile);
diff --git a/core/java/android/print/PrintJobInfo.java b/core/java/android/print/PrintJobInfo.java
index 602f3c1..b919ad6 100644
--- a/core/java/android/print/PrintJobInfo.java
+++ b/core/java/android/print/PrintJobInfo.java
@@ -44,6 +44,13 @@
     public static final int STATE_ANY_VISIBLE_TO_CLIENTS = -2;
 
     /**
+     * Constant for matching any active print job state.
+     *
+     * @hide
+     */
+    public static final int STATE_ANY_ACTIVE = -3;
+
+    /**
      * Print job state: The print job is being created but not yet
      * ready to be printed.
      * <p>
@@ -55,7 +62,7 @@
     public static final int STATE_CREATED = 1;
 
     /**
-     * Print job status: The print jobs is created, it is ready
+     * Print job state: The print jobs is created, it is ready
      * to be printed and should be processed.
      * <p>
      * Next valid states: {@link #STATE_STARTED}, {@link #STATE_FAILED},
@@ -65,40 +72,49 @@
     public static final int STATE_QUEUED = 2;
 
     /**
-     * Print job status: The print job is being printed.
+     * Print job state: The print job is being printed.
      * <p>
      * Next valid states: {@link #STATE_COMPLETED}, {@link #STATE_FAILED},
-     * {@link #STATE_CANCELED}
+     * {@link #STATE_CANCELED}, {@link #STATE_BLOCKED}
      * </p>
      */
     public static final int STATE_STARTED = 3;
 
     /**
-     * Print job status: The print job was successfully printed.
-     * This is a terminal state.
+     * Print job state: The print job is blocked.
      * <p>
-     * Next valid states: None
+     * Next valid states: {@link #STATE_FAILED}, {@link #STATE_CANCELED},
+     * {@link #STATE_STARTED}
      * </p>
      */
-    public static final int STATE_COMPLETED = 4;
+    public static final int STATE_BLOCKED = 4;
 
     /**
-     * Print job status: The print job was printing but printing failed.
+     * Print job state: The print job was successfully printed.
      * This is a terminal state.
      * <p>
      * Next valid states: None
      * </p>
      */
-    public static final int STATE_FAILED = 5;
+    public static final int STATE_COMPLETED = 5;
 
     /**
-     * Print job status: The print job was canceled.
+     * Print job state: The print job was printing but printing failed.
      * This is a terminal state.
      * <p>
      * Next valid states: None
      * </p>
      */
-    public static final int STATE_CANCELED = 6;
+    public static final int STATE_FAILED = 6;
+
+    /**
+     * Print job state: The print job was canceled.
+     * This is a terminal state.
+     * <p>
+     * Next valid states: None
+     * </p>
+     */
+    public static final int STATE_CANCELED = 7;
 
     /** The unique print job id. */
     private int mId;
@@ -127,8 +143,8 @@
     /** How many copies to print. */
     private int mCopies;
 
-    /** Failure reason if this job failed. */
-    private String mFailureReason;
+    /** Reason for the print job being in its current state. */
+    private String mStateReason;
 
     /** The pages to print */
     private PageRange[] mPageRanges;
@@ -155,7 +171,7 @@
         mUserId = other.mUserId;
         mTag = other.mTag;
         mCopies = other.mCopies;
-        mFailureReason = other.mFailureReason;
+        mStateReason = other.mStateReason;
         mPageRanges = other.mPageRanges;
         mAttributes = other.mAttributes;
         mDocumentInfo = other.mDocumentInfo;
@@ -171,7 +187,7 @@
         mUserId = parcel.readInt();
         mTag = parcel.readString();
         mCopies = parcel.readInt();
-        mFailureReason = parcel.readString();
+        mStateReason = parcel.readString();
         if (parcel.readInt() == 1) {
             Parcelable[] parcelables = parcel.readParcelableArray(null);
             mPageRanges = new PageRange[parcelables.length];
@@ -377,25 +393,27 @@
     }
 
     /**
-     * The failure reason if this print job failed.
+     * Gets the reason for the print job being in the current state.
      *
-     * @return The failure reason.
+     * @return The reason, or null if there is no reason or the
+     * reason is unknown.
      *
      * @hide
      */
-    public String getFailureReason() {
-        return mFailureReason;
+    public String getStateReason() {
+        return mStateReason;
     }
 
     /**
-     * The failure reason if this print job failed.
+     * Sets the reason for the print job being in the current state.
      *
-     * @param failureReason The failure reason.
+     * @param stateReason The reason, or null if there is no reason
+     * or the reason is unknown.
      *
      * @hide
      */
-    public void setFailureReason(String failureReason) {
-        mFailureReason = failureReason;
+    public void setStateReason(String stateReason) {
+        mStateReason = stateReason;
     }
 
     /**
@@ -476,7 +494,7 @@
         parcel.writeInt(mUserId);
         parcel.writeString(mTag);
         parcel.writeInt(mCopies);
-        parcel.writeString(mFailureReason);
+        parcel.writeString(mStateReason);
         if (mPageRanges != null) {
             parcel.writeInt(1);
             parcel.writeParcelableArray(mPageRanges, flags);
diff --git a/core/java/android/print/PrintManager.java b/core/java/android/print/PrintManager.java
index d3e35c3..6e32c05 100644
--- a/core/java/android/print/PrintManager.java
+++ b/core/java/android/print/PrintManager.java
@@ -36,7 +36,6 @@
 import libcore.io.IoUtils;
 
 import java.io.File;
-import java.io.FileDescriptor;
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -163,7 +162,7 @@
      * @param pdfFile The PDF file to print.
      * @param documentInfo Information about the printed document.
      * @param attributes The default print job attributes.
-     * @return The created print job.
+     * @return The created print job on success or null on failure.
      *
      * @see PrintJob
      */
@@ -181,7 +180,7 @@
      * @param printJobName A name for the new print job.
      * @param documentAdapter An adapter that emits the document to print.
      * @param attributes The default print job attributes.
-     * @return The created print job.
+     * @return The created print job on success or null on failure.
      *
      * @see PrintJob
      */
@@ -279,7 +278,7 @@
             }
             SomeArgs args = SomeArgs.obtain();
             args.arg1 = pages;
-            args.arg2 = fd.getFileDescriptor();
+            args.arg2 = fd;
             args.arg3 = callback;
             args.argi1 = sequence;
             mHandler.removeMessages(MyHandler.MSG_WRITE);
@@ -342,7 +341,7 @@
                     case MSG_WRITE: {
                         SomeArgs args = (SomeArgs) message.obj;
                         PageRange[] pages = (PageRange[]) args.arg1;
-                        FileDescriptor fd = (FileDescriptor) args.arg2;
+                        ParcelFileDescriptor fd = (ParcelFileDescriptor) args.arg2;
                         IWriteResultCallback callback = (IWriteResultCallback) args.arg3;
                         final int sequence = args.argi1;
                         args.recycle();
@@ -428,12 +427,12 @@
         }
 
         private final class MyWriteResultCallback extends WriteResultCallback {
-            private FileDescriptor mFd;
+            private ParcelFileDescriptor mFd;
             private int mSequence;
             private IWriteResultCallback mCallback;
 
             public MyWriteResultCallback(IWriteResultCallback callback,
-                    FileDescriptor fd, int sequence) {
+                    ParcelFileDescriptor fd, int sequence) {
                 mFd = fd;
                 mSequence = sequence;
                 mCallback = callback;
diff --git a/core/java/android/print/PrinterCapabilitiesInfo.java b/core/java/android/print/PrinterCapabilitiesInfo.java
index 70b418c..941e6e1 100644
--- a/core/java/android/print/PrinterCapabilitiesInfo.java
+++ b/core/java/android/print/PrinterCapabilitiesInfo.java
@@ -863,12 +863,12 @@
             while (currentModes > 0) {
                 final int currentMode = (1 << Integer.numberOfTrailingZeros(currentModes));
                 currentModes &= ~currentMode;
-                PrintAttributes.enfoceValidFittingMode(currentMode);
+                PrintAttributes.enforceValidFittingMode(currentMode);
             }
             if ((fittingModes & defaultFittingMode) == 0) {
                 throw new IllegalArgumentException("Default fitting mode not in fiting modes.");
             }
-            PrintAttributes.enfoceValidFittingMode(defaultFittingMode);
+            PrintAttributes.enforceValidFittingMode(defaultFittingMode);
             mPrototype.mFittingModes = fittingModes;
             mPrototype.mDefaults[PROPERTY_FITTING_MODE] = defaultFittingMode;
             return this;
diff --git a/core/java/android/print/PrinterDiscoverySession.java b/core/java/android/print/PrinterDiscoverySession.java
index 8fbdd9c..46f0bef 100644
--- a/core/java/android/print/PrinterDiscoverySession.java
+++ b/core/java/android/print/PrinterDiscoverySession.java
@@ -74,6 +74,7 @@
     public final void startPrinterDisovery(List<PrinterId> priorityList) {
         if (isDestroyed()) {
             Log.w(LOG_TAG, "Ignoring start printers dsicovery - session destroyed");
+            return;
         }
         if (!mIsPrinterDiscoveryStarted) {
             mIsPrinterDiscoveryStarted = true;
@@ -88,6 +89,7 @@
     public final void stopPrinterDiscovery() {
         if (isDestroyed()) {
             Log.w(LOG_TAG, "Ignoring stop printers discovery - session destroyed");
+            return;
         }
         if (mIsPrinterDiscoveryStarted) {
             mIsPrinterDiscoveryStarted = false;
@@ -99,14 +101,39 @@
         }
     }
 
-    public final void requestPrinterUpdate(PrinterId printerId) {
+    public final void startPrinterStateTracking(PrinterId printerId) {
         if (isDestroyed()) {
-            Log.w(LOG_TAG, "Ignoring reqeust printer update - session destroyed");
+            Log.w(LOG_TAG, "Ignoring start printer state tracking - session destroyed");
+            return;
         }
         try {
-            mPrintManager.requestPrinterUpdate(printerId, mUserId);
+            mPrintManager.startPrinterStateTracking(printerId, mUserId);
         } catch (RemoteException re) {
-            Log.e(LOG_TAG, "Error requesting printer update", re);
+            Log.e(LOG_TAG, "Error starting printer state tracking", re);
+        }
+    }
+
+    public final void stopPrinterStateTracking(PrinterId printerId) {
+        if (isDestroyed()) {
+            Log.w(LOG_TAG, "Ignoring stop printer state tracking - session destroyed");
+            return;
+        }
+        try {
+            mPrintManager.stopPrinterStateTracking(printerId, mUserId);
+        } catch (RemoteException re) {
+            Log.e(LOG_TAG, "Error stoping printer state tracking", re);
+        }
+    }
+
+    public final void validatePrinters(List<PrinterId> printerIds) {
+        if (isDestroyed()) {
+            Log.w(LOG_TAG, "Ignoring validate printers - session destroyed");
+            return;
+        }
+        try {
+            mPrintManager.validatePrinters(printerIds, mUserId);
+        } catch (RemoteException re) {
+            Log.e(LOG_TAG, "Error validating printers", re);
         }
     }
 
diff --git a/core/java/android/print/PrinterInfo.java b/core/java/android/print/PrinterInfo.java
index 6f567a6..0ea319b 100644
--- a/core/java/android/print/PrinterInfo.java
+++ b/core/java/android/print/PrinterInfo.java
@@ -25,10 +25,14 @@
  */
 public final class PrinterInfo implements Parcelable {
 
-    /** Printer status: the printer is ready to print. */
-    public static final int STATUS_READY = 1;
+    /** Printer status: the printer is idle and ready to print. */
+    public static final int STATUS_IDLE = 1;
 
-    // TODO: Add printer status constants.
+    /** Printer status: the printer is busy printing. */
+    public static final int STATUS_BUSY = 2;
+
+    /** Printer status: the printer is not available. */
+    public static final int STATUS_UNAVAILABLE = 3;
 
     private PrinterId mId;
 
@@ -237,6 +241,21 @@
         }
 
         /**
+         * Sets the printer status.
+         *
+         * @param status The status.
+         * @return This builder.
+         *
+         * @see PrinterInfo#STATUS_IDLE
+         * @see PrinterInfo#STATUS_BUSY
+         * @see PrinterInfo#STATUS_UNAVAILABLE
+         */
+        public Builder setStatus(int status) {
+            mPrototype.mStatus = status;
+            return this;
+        }
+
+        /**
          * Sets the printer name.
          *
          * @param name The name.
@@ -279,7 +298,9 @@
         }
 
         private boolean isValidStatus(int status) {
-            return (status == PrinterInfo.STATUS_READY);
+            return (status == STATUS_IDLE
+                    || status == STATUS_IDLE
+                    || status == STATUS_UNAVAILABLE);
         }
     }
 
diff --git a/core/java/android/print/pdf/PdfDocument.java b/core/java/android/print/pdf/PdfDocument.java
index dbd7dd1..a2883cf 100644
--- a/core/java/android/print/pdf/PdfDocument.java
+++ b/core/java/android/print/pdf/PdfDocument.java
@@ -44,7 +44,7 @@
  * PdfDocument document = PdfDocument.open();
  *
  * // crate a page description
- * PageInfo pageInfo = new PageInfo.Builder(new Rect(0, 0, 100, 100), 1, 300).create();
+ * PageInfo pageInfo = new PageInfo.Builder(new Rect(0, 0, 100, 100), 1).create();
  *
  * // start a page
  * Page page = document.startPage(pageInfo);
@@ -125,8 +125,7 @@
             throw new IllegalStateException("Previous page not finished!");
         }
         Canvas canvas = new PdfCanvas(nativeCreatePage(pageInfo.mPageSize,
-                pageInfo.mContentSize, pageInfo.mInitialTransform.native_instance),
-                pageInfo.mDensity);
+                pageInfo.mContentSize, pageInfo.mInitialTransform.native_instance));
         mCurrentPage = new Page(canvas, pageInfo);
         return mCurrentPage;
     }
@@ -230,25 +229,14 @@
 
     private final class PdfCanvas extends Canvas {
 
-        public PdfCanvas(int nativeCanvas, int density) {
+        public PdfCanvas(int nativeCanvas) {
             super(nativeCanvas);
-            super.setDensity(density);
         }
 
         @Override
         public void setBitmap(Bitmap bitmap) {
             throw new UnsupportedOperationException();
         }
-
-        @Override
-        public void setDensity(int density) {
-            throw new UnsupportedOperationException();
-        }
-
-        @Override
-        public void setScreenDensity(int density) {
-            throw new UnsupportedOperationException();
-        }
     }
 
     /**
@@ -259,7 +247,6 @@
         private Rect mContentSize;
         private Matrix mInitialTransform;
         private int mPageNumber;
-        private int mDensity;
 
         /**
          * Creates a new instance.
@@ -269,7 +256,7 @@
         }
 
         /**
-         * Gets the page size in pixels.
+         * Gets the page size in PostScript points (1/72th of an inch).
          *
          * @return The page size.
          */
@@ -278,7 +265,7 @@
         }
 
         /**
-         * Get the content size in pixels.
+         * Get the content size in PostScript points (1/72th of an inch).
          *
          * @return The content size.
          */
@@ -307,15 +294,6 @@
         }
 
         /**
-         * Gets the density of the page in DPI.
-         *
-         * @return The density.
-         */
-        public int getDesity() {
-            return mDensity;
-        }
-
-        /**
          * Builder for creating a {@link PageInfo}.
          */
         public static final class Builder {
@@ -324,11 +302,10 @@
             /**
              * Creates a new builder with the mandatory page info attributes.
              *
-             * @param pageSize The page size in points, <strong>not</strong> dips.
+             * @param pageSize The page size in PostScript (1/72th of an inch).
              * @param pageNumber The page number.
-             * @param density The page density in DPI.
              */
-            public Builder(Rect pageSize, int pageNumber, int density) {
+            public Builder(Rect pageSize, int pageNumber) {
                 if (pageSize.width() == 0 || pageSize.height() == 0) {
                     throw new IllegalArgumentException("page width and height" +
                             " must be greater than zero!");
@@ -336,16 +313,12 @@
                 if (pageNumber < 0) {
                     throw new IllegalArgumentException("pageNumber cannot be less than zero!");
                 }
-                if (density <= 0) {
-                    throw new IllegalArgumentException("density must be greater than zero!");
-                }
                 mPageInfo.mPageSize = pageSize;
                 mPageInfo.mPageNumber = pageNumber;
-                mPageInfo.mDensity = density;
             }
 
             /**
-             * Sets the content size in pixels.
+             * Sets the content size in PostScript point (1/72th of an inch).
              *
              * @param contentSize The content size.
              */
diff --git a/core/java/android/print/pdf/PrintedPdfDocument.java b/core/java/android/print/pdf/PrintedPdfDocument.java
new file mode 100644
index 0000000..bee17ef
--- /dev/null
+++ b/core/java/android/print/pdf/PrintedPdfDocument.java
@@ -0,0 +1,165 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.print.pdf;
+
+import android.content.Context;
+import android.graphics.Rect;
+import android.print.PrintAttributes;
+import android.print.PrintAttributes.Margins;
+import android.print.PrintAttributes.MediaSize;
+import android.print.pdf.PdfDocument;
+import android.print.pdf.PdfDocument.Page;
+import android.print.pdf.PdfDocument.PageInfo;
+
+import java.io.OutputStream;
+import java.util.List;
+
+/**
+ * This class is a helper for printing content to a different media
+ * size. This class is responsible for computing a correct page size
+ * given some print constraints, i.e. {@link PrintAttributes}. It is
+ * an adapter around a {@link PdfDocument}.
+ */
+public final class PrintedPdfDocument {
+    private static final int MILS_PER_INCH = 1000;
+    private static final int POINTS_IN_INCH = 72;
+
+    private final PdfDocument mDocument = PdfDocument.open();
+    private final Rect mPageSize = new Rect();
+    private final Rect mContentSize = new Rect();
+
+    /**
+     * Opens a new document. The document pages are computed based on
+     * the passes in {@link PrintAttributes}.
+     * <p>
+     * <strong>Note:</strong> You must close the document after you are
+     * done by calling {@link #close()}
+     * </p>
+     *
+     * @param context Context instance for accessing resources.
+     * @param attributes The print attributes.
+     * @return The document.
+     *
+     * @see #close()
+     */
+    public static PrintedPdfDocument open(Context context, PrintAttributes attributes) {
+        return new PrintedPdfDocument(context, attributes);
+    }
+
+    /**
+     * Creates a new instance.
+     *
+     * @param context Context instance for accessing resources and services.
+     * @param attributes The {@link PrintAttributes} to user.
+     */
+    private PrintedPdfDocument(Context context, PrintAttributes attributes) {
+        MediaSize mediaSize = attributes.getMediaSize();
+
+        // Compute the size of the target canvas from the attributes.
+        final int pageWidth = (int) (((float) mediaSize.getWidthMils() / MILS_PER_INCH)
+                * POINTS_IN_INCH);
+        final int pageHeight = (int) (((float) mediaSize.getHeightMils() / MILS_PER_INCH)
+                * POINTS_IN_INCH);
+        mPageSize.set(0, 0, pageWidth, pageHeight);
+
+        // Compute the content size from the attributes.
+        Margins margins = attributes.getMargins();
+        final int marginLeft = (int) (((float) margins.getLeftMils() /MILS_PER_INCH)
+                * POINTS_IN_INCH);
+        final int marginTop = (int) (((float) margins.getTopMils() / MILS_PER_INCH)
+                * POINTS_IN_INCH);
+        final int marginRight = (int) (((float) margins.getRightMils() / MILS_PER_INCH)
+                * POINTS_IN_INCH);
+        final int marginBottom = (int) (((float) margins.getBottomMils() / MILS_PER_INCH)
+                * POINTS_IN_INCH);
+        mContentSize.set(mPageSize.left + marginLeft, mPageSize.top + marginTop,
+                mPageSize.right - marginRight, mPageSize.bottom - marginBottom);
+    }
+
+    /**
+     * Starts a page using a page size computed from the print attributes
+     * passed in {@link #open(Context, PrintAttributes)} and the given page
+     * number to create appropriate {@link PageInfo}.
+     * <p>
+     * After the page is created you can draw arbitrary content on the page's
+     * canvas which you can get by calling {@link Page#getCanvas() Page.getCanvas()}.
+     * After you are done drawing the content you should finish the page by calling
+     * {@link #finishPage(Page)}. After the page is finished you should no longer
+     * access the page or its canvas.
+     * </p>
+     * <p>
+     * <strong>Note:</strong> Do not call this method after {@link #close()}.
+     * </p>
+     *
+     * @param pageNumber The page number.
+     * @return A blank page.
+     *
+     * @see #finishPage(Page)
+     */
+    public Page startPage(int pageNumber) {
+        PageInfo pageInfo = new PageInfo
+                .Builder(mPageSize, 0)
+                .setContentSize(mContentSize)
+                .create();
+        Page page = mDocument.startPage(pageInfo);
+        return page;
+    }
+
+    /**
+     * Finishes a started page. You should always finish the last started page.
+     * <p>
+     * <strong>Note:</strong> Do not call this method after {@link #close()}.
+     * </p>
+     *
+     * @param page The page.
+     *
+     * @see #startPage(int)
+     */
+    public void finishPage(Page page) {
+        mDocument.finishPage(page);
+    }
+
+    /**
+     * Writes the document to an output stream.
+     * <p>
+     * <strong>Note:</strong> Do not call this method after {@link #close()}.
+     * </p>
+     *
+     * @param out The output stream.
+     */
+    public void writeTo(OutputStream out) {
+        mDocument.writeTo(out);
+    }
+
+    /**
+     * Gets the pages of the document.
+     *
+     * @return The pages.
+     */
+    public List<PageInfo> getPages() {
+        return mDocument.getPages();
+    }
+
+    /**
+     * Closes this document. This method should be called after you
+     * are done working with the document. After this call the document
+     * is considered closed and none of its methods should be called.
+     */
+    public void close() {
+        mDocument.close();
+    }
+}
diff --git a/core/java/android/printservice/IPrintService.aidl b/core/java/android/printservice/IPrintService.aidl
index 2cee1d8..ee36619 100644
--- a/core/java/android/printservice/IPrintService.aidl
+++ b/core/java/android/printservice/IPrintService.aidl
@@ -33,6 +33,8 @@
     void createPrinterDiscoverySession();
     void startPrinterDiscovery(in List<PrinterId> priorityList);
     void stopPrinterDiscovery();
-    void requestPrinterUpdate(in PrinterId printerId);
+    void validatePrinters(in List<PrinterId> printerIds);
+    void startPrinterStateTracking(in PrinterId printerId);
+    void stopPrinterStateTracking(in PrinterId printerId);
     void destroyPrinterDiscoverySession();
 }
diff --git a/core/java/android/printservice/PrintDocument.java b/core/java/android/printservice/PrintDocument.java
index 7437dc5..8292cfb 100644
--- a/core/java/android/printservice/PrintDocument.java
+++ b/core/java/android/printservice/PrintDocument.java
@@ -21,12 +21,15 @@
 import android.print.PrintDocumentInfo;
 import android.util.Log;
 
-import java.io.FileDescriptor;
 import java.io.IOException;
 
 /**
  * This class represents a printed document from the perspective of a print
  * service. It exposes APIs to query the document and obtain its data.
+ * <p>
+ * <strong>Note: </strong> All methods of this class must be executed on the
+ * main application thread.
+ * </p>
  */
 public final class PrintDocument {
 
@@ -51,6 +54,7 @@
      * @return The document info.
      */
     public PrintDocumentInfo getInfo() {
+        PrintService.throwIfNotCalledOnMainThread();
         return mInfo;
     }
 
@@ -64,7 +68,8 @@
      *
      * @return A file descriptor for reading the data.
      */
-    public FileDescriptor getData() {
+    public ParcelFileDescriptor getData() {
+        PrintService.throwIfNotCalledOnMainThread();
         ParcelFileDescriptor source = null;
         ParcelFileDescriptor sink = null;
         try {
@@ -72,7 +77,7 @@
             source = fds[0];
             sink = fds[1];
             mPrintServiceClient.writePrintJobData(sink, mPrintJobId);
-            return source.getFileDescriptor();
+            return source;
         } catch (IOException ioe) {
             Log.e(LOG_TAG, "Error calling getting print job data!", ioe);
         } catch (RemoteException re) {
diff --git a/core/java/android/printservice/PrintJob.java b/core/java/android/printservice/PrintJob.java
index d2fbef2..8bae9d6 100644
--- a/core/java/android/printservice/PrintJob.java
+++ b/core/java/android/printservice/PrintJob.java
@@ -18,6 +18,7 @@
 
 import android.os.RemoteException;
 import android.print.PrintJobInfo;
+import android.text.TextUtils;
 import android.util.Log;
 
 /**
@@ -123,6 +124,21 @@
     }
 
     /**
+     * Gets whether this print job is blocked. Such a print job is halted
+     * due to an abnormal condition and can be started or canceled or failed.
+     *
+     * @return Whether the print job is blocked.
+     *
+     * @see #start()
+     * @see #cancel()
+     * @see #fail(CharSequence)
+     */
+    public boolean isBlocked() {
+        PrintService.throwIfNotCalledOnMainThread();
+        return getInfo().getState() == PrintJobInfo.STATE_BLOCKED;
+    }
+
+    /**
      * Gets whether this print job is completed. Such a print job
      * is successfully printed. This is a final state.
      *
@@ -163,21 +179,49 @@
 
     /**
      * Starts the print job. You should call this method if {@link
-     * #isQueued()} returns true and you started printing.
+     * #isQueued()} or {@link #isBlocked()} returns true and you started
+     * resumed printing.
      *
-     * @return Whether the job as started.
+     * @return Whether the job was started.
      *
      * @see #isQueued()
+     * @see #isBlocked()
      */
     public boolean start() {
         PrintService.throwIfNotCalledOnMainThread();
-        if (isQueued()) {
+        final int state = getInfo().getState();
+        if (state == PrintJobInfo.STATE_QUEUED
+                || state == PrintJobInfo.STATE_BLOCKED) {
             return setState(PrintJobInfo.STATE_STARTED, null);
         }
         return false;
     }
 
     /**
+     * Blocks the print job. You should call this method if {@link
+     * #isStarted()} or {@link #isBlocked()} returns true and you need
+     * to block the print job. For example, the user has to add some
+     * paper to continue printing. To resume the print job call {@link
+     * #start()}.
+     *
+     * @return Whether the job was blocked.
+     *
+     * @see #isStarted()
+     * @see #isBlocked()
+     */
+    public boolean block(String reason) {
+        PrintService.throwIfNotCalledOnMainThread();
+        PrintJobInfo info = getInfo();
+        final int state = info.getState();
+        if (state == PrintJobInfo.STATE_STARTED
+                || (state == PrintJobInfo.STATE_BLOCKED
+                        && !TextUtils.equals(info.getStateReason(), reason))) {
+            return setState(PrintJobInfo.STATE_BLOCKED, reason);
+        }
+        return false;
+    }
+
+    /**
      * Completes the print job. You should call this method if {@link
      * #isStarted()} returns true and you are done printing.
      *
@@ -195,8 +239,8 @@
 
     /**
      * Fails the print job. You should call this method if {@link
-     * #isQueued()} or {@link #isStarted()} returns true you failed
-     * while printing.
+     * #isQueued()} or {@link #isStarted()} or {@link #isBlocked()}
+     * returns true you failed while printing.
      *
      * @param error The human readable, short, and translated reason
      * for the failure.
@@ -204,10 +248,11 @@
      *
      * @see #isQueued()
      * @see #isStarted()
+     * @see #isBlocked()
      */
     public boolean fail(String error) {
         PrintService.throwIfNotCalledOnMainThread();
-        if (isQueued() || isStarted()) {
+        if (!isInImmutableState()) {
             return setState(PrintJobInfo.STATE_FAILED, error);
         }
         return false;
@@ -215,18 +260,19 @@
 
     /**
      * Cancels the print job. You should call this method if {@link
-     * #isQueued()} or {@link #isStarted()} returns true and you canceled
-     * the print job as a response to a call to {@link
-     * PrintService#onRequestCancelPrintJob(PrintJob)}.
+     * #isQueued()} or {@link #isStarted() or #isBlocked()} returns
+     * true and you canceled the print job as a response to a call to
+     * {@link PrintService#onRequestCancelPrintJob(PrintJob)}.
      *
      * @return Whether the job is canceled.
      *
      * @see #isStarted()
      * @see #isQueued()
+     * @see #isBlocked()
      */
     public boolean cancel() {
         PrintService.throwIfNotCalledOnMainThread();
-        if (isQueued() || isStarted()) {
+        if (!isInImmutableState()) {
             return setState(PrintJobInfo.STATE_CANCELED, null);
         }
         return false;
@@ -277,7 +323,8 @@
     private boolean isInImmutableState() {
         final int state = mCachedInfo.getState();
         return state == PrintJobInfo.STATE_COMPLETED
-                || state == PrintJobInfo.STATE_CANCELED;
+                || state == PrintJobInfo.STATE_CANCELED
+                || state == PrintJobInfo.STATE_FAILED;
     }
 
     private boolean setState(int state, String error) {
@@ -287,7 +334,7 @@
                 // we may not be able to re-fetch it later if the job gets
                 // removed from the spooler as a result of the state change.
                 mCachedInfo.setState(state);
-                mCachedInfo.setFailureReason(error);
+                mCachedInfo.setStateReason(error);
                 return true;
             }
         } catch (RemoteException re) {
diff --git a/core/java/android/printservice/PrintService.java b/core/java/android/printservice/PrintService.java
index f6c0a9a..96552af 100644
--- a/core/java/android/printservice/PrintService.java
+++ b/core/java/android/printservice/PrintService.java
@@ -314,8 +314,20 @@
             }
 
             @Override
-            public void requestPrinterUpdate(PrinterId printerId) {
-                mHandler.obtainMessage(ServiceHandler.MSG_REQUEST_PRINTER_UPDATE,
+            public void validatePrinters(List<PrinterId> printerIds) {
+                mHandler.obtainMessage(ServiceHandler.MSG_VALIDATE_PRINTERS,
+                        printerIds).sendToTarget();
+            }
+
+            @Override
+            public void startPrinterStateTracking(PrinterId printerId) {
+                mHandler.obtainMessage(ServiceHandler.MSG_START_PRINTER_STATE_TRACKING,
+                        printerId).sendToTarget();
+            }
+
+            @Override
+            public void stopPrinterStateTracking(PrinterId printerId) {
+                mHandler.obtainMessage(ServiceHandler.MSG_STOP_PRINTER_STATE_TRACKING,
                         printerId).sendToTarget();
             }
 
@@ -344,10 +356,12 @@
         public static final int MSG_DESTROY_PRINTER_DISCOVERY_SESSION = 2;
         public static final int MSG_START_PRINTER_DISCOVERY = 3;
         public static final int MSG_STOP_PRINTER_DISCOVERY = 4;
-        public static final int MSG_REQUEST_PRINTER_UPDATE = 5;
-        public static final int MSG_ON_PRINTJOB_QUEUED = 6;
-        public static final int MSG_ON_REQUEST_CANCEL_PRINTJOB = 7;
-        public static final int MSG_SET_CLEINT = 8;
+        public static final int MSG_VALIDATE_PRINTERS = 5;
+        public static final int MSG_START_PRINTER_STATE_TRACKING = 6;
+        public static final int MSG_STOP_PRINTER_STATE_TRACKING = 7;
+        public static final int MSG_ON_PRINTJOB_QUEUED = 8;
+        public static final int MSG_ON_REQUEST_CANCEL_PRINTJOB = 9;
+        public static final int MSG_SET_CLEINT = 10;
 
         public ServiceHandler(Looper looper) {
             super(looper, null, true);
@@ -391,10 +405,24 @@
                     }
                 } break;
 
-                case MSG_REQUEST_PRINTER_UPDATE: {
+                case MSG_VALIDATE_PRINTERS: {
+                    if (mDiscoverySession != null) {
+                        List<PrinterId> printerIds = (List<PrinterId>) message.obj;
+                        mDiscoverySession.validatePrinters(printerIds);
+                    }
+                } break;
+
+                case MSG_START_PRINTER_STATE_TRACKING: {
                     if (mDiscoverySession != null) {
                         PrinterId printerId = (PrinterId) message.obj;
-                        mDiscoverySession.requestPrinterUpdate(printerId);
+                        mDiscoverySession.startPrinterStateTracking(printerId);
+                    }
+                } break;
+
+                case MSG_STOP_PRINTER_STATE_TRACKING: {
+                    if (mDiscoverySession != null) {
+                        PrinterId printerId = (PrinterId) message.obj;
+                        mDiscoverySession.stopPrinterStateTracking(printerId);
                     }
                 } break;
 
diff --git a/core/java/android/printservice/PrinterDiscoverySession.java b/core/java/android/printservice/PrinterDiscoverySession.java
index 8b959a6..1f86ecc 100644
--- a/core/java/android/printservice/PrinterDiscoverySession.java
+++ b/core/java/android/printservice/PrinterDiscoverySession.java
@@ -53,15 +53,23 @@
  * session. Printers are <strong>not</strong> persisted across sessions.
  * </p>
  * <p>
- * The system will make a call to
- * {@link PrinterDiscoverySession#onRequestPrinterUpdate(PrinterId)} if you
- * need to update a given printer. It is possible that you add a printer without
+ * The system will make a call to {@link #onValidatePrinters(List)} if you
+ * need to update some printers. It is possible that you add a printer without
  * specifying its capabilities. This enables you to avoid querying all discovered
  * printers for their capabilities, rather querying the capabilities of a printer
  * only if necessary. For example, the system will request that you update a printer
- * if it gets selected by the user. If you did not report the printer capabilities
- * when adding it, you must do so after the system requests a printer update.
- * Otherwise, the printer will be ignored.
+ * if it gets selected by the user. When validating printers you do not need to
+ * provide the printers' capabilities but may do so.
+ * </p>
+ * <p>
+ * If the system is interested in being constantly updated for the state of a
+ * printer you will receive a call to {@link #onStartPrinterStateTracking(PrinterId)}
+ * after which you will have to do a best effort to keep the system updated for
+ * changes in the printer state and capabilities. You also <strong>must</strong>
+ * update the printer capabilities if you did not provide them when adding it, or
+ * the printer will be ignored. When the system is no longer interested in getting
+ * updates for a printer you will receive a call to {@link #onStopPrinterStateTracking(
+ * PrinterId)}.
  * </p>
  * <p>
  * <strong>Note: </strong> All callbacks in this class are executed on the main
@@ -115,7 +123,7 @@
      * the printer that was added but not removed.
      * <p>
      * <strong>Note: </strong> Calls to this method after the session is
-     * destroyed, i.e. after the {@link #onDestroy()} callback, will be ignored.
+     * destroyed, that is after the {@link #onDestroy()} callback, will be ignored.
      * </p>
      *
      * @return The printers.
@@ -139,7 +147,7 @@
      * times during the life of this session. Duplicates will be ignored.
      * <p>
      * <strong>Note: </strong> Calls to this method after the session is
-     * destroyed, i.e. after the {@link #onDestroy()} callback, will be ignored.
+     * destroyed, that is after the {@link #onDestroy()} callback, will be ignored.
      * </p>
      *
      * @param printers The printers to add.
@@ -218,7 +226,7 @@
      * call this method multiple times during the lifetime of this session.
      * <p>
      * <strong>Note: </strong> Calls to this method after the session is
-     * destroyed, i.e. after the {@link #onDestroy()} callback, will be ignored.
+     * destroyed, that is after the {@link #onDestroy()} callback, will be ignored.
      * </p>
      *
      * @param printerIds The ids of the removed printers.
@@ -293,7 +301,7 @@
      * during the lifetime of this session.
      * <p>
      * <strong>Note: </strong> Calls to this method after the session is
-     * destroyed, i.e. after the {@link #onDestroy()} callback, will be ignored.
+     * destroyed, that is after the {@link #onDestroy()} callback, will be ignored.
      * </p>
      *
      * @param printers The printers to update.
@@ -441,7 +449,9 @@
      * <p>
      * <strong>Note: </strong>You are also given a list of printers whose availability
      * has to be checked first. For example, these printers could be the user's favorite
-     * ones, therefore they have to be verified first.
+     * ones, therefore they have to be verified first. You do <strong>not need</strong>
+     * to provide the capabilities of the printers, rather verify whether they exist
+     * similarly to {@link #onValidatePrinters(List)}.
      * </p>
      *
      * @param priorityList The list of printers to validate first. Never null.
@@ -463,9 +473,28 @@
     public abstract void onStopPrinterDiscovery();
 
     /**
-     * Requests that you update a printer. You are responsible for updating
-     * the printer by also reporting its capabilities via calling {@link
-     * #updatePrinters(List)}.
+     * Callback asking you to validate that the given printers are valid, that
+     * is they exist. You are responsible for checking whether these printers
+     * exist and for the ones that do exist notify the system via calling
+     * {@link #updatePrinters(List)}.
+     * <p>
+     * <strong>Note: </strong> You are <strong>not required</strong> to provide
+     * the printer capabilities when updating the printers that do exist.
+     * <p>
+     *
+     * @param printerIds The printers to validate.
+     *
+     * @see #updatePrinters(List)
+     * @see PrinterInfo.Builder#setCapabilities(PrinterCapabilitiesInfo)
+     *      PrinterInfo.Builder.setCapabilities(PrinterCapabilitiesInfo)
+     */
+    public abstract void onValidatePrinters(List<PrinterId> printerIds);
+
+    /**
+     * Callback asking you to start tracking the state of a printer. Tracking
+     * the state means that you should do a best effort to observe the state
+     * of this printer and notify the system if that state changes via calling
+     * {@link #updatePrinters(List)}.
      * <p>
      * <strong>Note: </strong> A printer can be initially added without its
      * capabilities to avoid polling printers that the user will not select.
@@ -473,18 +502,33 @@
      * printer <strong>including</strong> its capabilities. Otherwise, the
      * printer will be ignored.
      * <p>
-     * A scenario when you may be requested to update a printer is if the user
-     * selects it and the system has to present print options UI based on the
-     * printer's capabilities.
+     * <p>
+     * A scenario when you may be requested to track a printer's state is if
+     * the user selects that printer and the system has to present print
+     * options UI based on the printer's capabilities. In this case the user
+     * should be promptly informed if, for example, the printer becomes
+     * unavailable.
      * </p>
      *
-     * @param printerId The printer id.
+     * @param printerId The printer to start tracking.
      *
+     * @see #onStopPrinterStateTracking(PrinterId)
      * @see #updatePrinters(List)
      * @see PrinterInfo.Builder#setCapabilities(PrinterCapabilitiesInfo)
      *      PrinterInfo.Builder.setCapabilities(PrinterCapabilitiesInfo)
      */
-    public abstract void onRequestPrinterUpdate(PrinterId printerId);
+    public abstract void onStartPrinterStateTracking(PrinterId printerId);
+
+    /**
+     * Callback asking you to stop tracking the state of a printer. The passed
+     * in printer id is the one for which you received a call to {@link
+     * #onStartPrinterStateTracking(PrinterId)}.
+     *
+     * @param printerId The printer to stop tracking.
+     *
+     * @see #onStartPrinterStateTracking(PrinterId)
+     */
+    public abstract void onStopPrinterStateTracking(PrinterId printerId);
 
     /**
      * Notifies you that the session is destroyed. After this callback is invoked
@@ -538,9 +582,21 @@
         }
     }
 
-    void requestPrinterUpdate(PrinterId printerId) {
-        if (!mIsDestroyed) {
-            onRequestPrinterUpdate(printerId);
+    void validatePrinters(List<PrinterId> printerIds) {
+        if (!mIsDestroyed && mObserver != null) {
+            onValidatePrinters(printerIds);
+        }
+    }
+
+    void startPrinterStateTracking(PrinterId printerId) {
+        if (!mIsDestroyed && mObserver != null) {
+            onStartPrinterStateTracking(printerId);
+        }
+    }
+
+    void stopPrinterStateTracking(PrinterId printerId) {
+        if (!mIsDestroyed && mObserver != null) {
+            onStopPrinterStateTracking(printerId);
         }
     }
 
diff --git a/core/java/android/provider/AlarmClock.java b/core/java/android/provider/AlarmClock.java
index f3267ee..724d76d 100644
--- a/core/java/android/provider/AlarmClock.java
+++ b/core/java/android/provider/AlarmClock.java
@@ -36,10 +36,15 @@
      * <p>
      * Activates an existing alarm or creates a new one.
      * </p><p>
-     * This action requests an alarm to be set for a given time of day. If an alarm already
-     * exists for this time, an implementation may use it rather than create a new one. If no time
-     * of day is specified, the implementation should start an activity that is capable of setting
-     * an alarm (SKIP_UI is ignored in this case). This action always enables the alarm.
+     * This action requests an alarm to be set for a given time of day. If no time of day is
+     * specified, an implementation should start an activity that is capable of setting an alarm
+     * ({@link #EXTRA_SKIP_UI} is ignored in this case). If a time of day is specified, and
+     * {@link #EXTRA_SKIP_UI} is {@code true}, and the alarm is not repeating, the implementation
+     * should remove this alarm after it has been dismissed. If an identical alarm exists matching
+     * all parameters, the implementation may re-use it instead of creating a new one (in this case,
+     * the alarm should not be removed after dismissal).
+     *
+     * This action always enables the alarm.
      * </p>
      * <h3>Request parameters</h3>
      * <ul>
@@ -52,8 +57,6 @@
      * vibrator for this alarm.
      * <li>{@link #EXTRA_SKIP_UI} <em>(optional)</em>: Whether or not to display an activity for
      * setting this alarm.
-     * <li>{@link #EXTRA_DELETE_AFTER_USE} <em>(optional)</em>: Whether or not to delete this
-     * alarm after it is dismissed.
      * </ul>
      */
     @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
@@ -65,13 +68,14 @@
      * Activates an existing timer or creates a new one.
      * </p><p>
      * This action requests a timer to be started for a specific {@link #EXTRA_LENGTH length} of
-     * time. If a timer already exists for this {@link #EXTRA_LENGTH length}, an implementation may
-     * use it rather than create a new one. If no {@link #EXTRA_LENGTH length} is specified, the
-     * implementation should start an activity that is capable of setting a timer
-     * ({@link #EXTRA_SKIP_UI} is ignored in this case).
-     * </p><p>
-     * An existing timer should only be used if it matches the provided extras and is not currently
-     * in use.
+     * time. If no {@link #EXTRA_LENGTH length} is specified, the implementation should start an
+     * activity that is capable of setting a timer ({@link #EXTRA_SKIP_UI} is ignored in this case).
+     * If a {@link #EXTRA_LENGTH length} is specified, and {@link #EXTRA_SKIP_UI} is {@code true},
+     * the implementation should remove this timer after it has been dismissed. If an identical,
+     * unused timer exists matching both parameters, an implementation may re-use it instead of
+     * creating a new one (in this case, the timer should not be removed after dismissal).
+     *
+     * This action always starts the timer.
      * </p>
      *
      * <h3>Request parameters</h3>
@@ -80,14 +84,21 @@
      * <li>{@link #EXTRA_MESSAGE} <em>(optional)</em>: A custom message for the timer.
      * <li>{@link #EXTRA_SKIP_UI} <em>(optional)</em>: Whether or not to display an activity for
      * setting this timer.
-     * <li>{@link #EXTRA_DELETE_AFTER_USE} <em>(optional)</em>: Whether or not to delete this
-     * timer after it is dismissed.
      * </ul>
      */
     @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
     public static final String ACTION_SET_TIMER = "android.intent.action.SET_TIMER";
 
     /**
+     * Activity Action: Show the alarms.
+     * <p>
+     * This action opens the alarms page.
+     * </p>
+     */
+     @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+     public static final String ACTION_SHOW_ALARMS = "android.intent.action.SHOW_ALARMS";
+
+    /**
      * Bundle extra: Weekdays for repeating alarm.
      * <p>
      * Used by {@link #ACTION_SET_ALARM}.
@@ -103,30 +114,10 @@
      * <li> {@link java.util.Calendar#FRIDAY},
      * <li> {@link java.util.Calendar#SATURDAY}
      * </ul>
-     * <p>
-     * Note: If this extra is provided, {@link #EXTRA_DELETE_AFTER_USE} is ignored.
-     * </p>
      */
     public static final String EXTRA_DAYS = "android.intent.extra.alarm.DAYS";
 
     /**
-     * Bundle extra: Whether or not to delete this alarm/timer after it's dismissed.
-     * <p>
-     * Used by {@link #ACTION_SET_ALARM} and {@link #ACTION_SET_TIMER}.
-     * </p><p>
-     * If this value is true, the alarm/timer used by this action should be deleted after it's been
-     * dismissed. The alarm/timer should only be removed if was actually created by the action. If
-     * an existing alarm/timer was used, it should not be deleted after it's dismissed.
-     * </p><p>
-     * The value is a {@link Boolean}.
-     * </p>
-     *
-     * @see #ACTION_SET_ALARM
-     * @see #ACTION_SET_TIMER
-     */
-    public static final String EXTRA_DELETE_AFTER_USE = "android.intent.extra.alarm.DELETE_AFTER_USE";
-
-    /**
      * Bundle extra: The hour of the alarm.
      * <p>
      * Used by {@link #ACTION_SET_ALARM}.
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 24dbf0e..31817cc 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -690,6 +690,19 @@
     public static final String ACTION_NOTIFICATION_LISTENER_SETTINGS
             = "android.settings.NOTIFICATION_LISTENER_SETTINGS";
 
+    /**
+     * Activity Action: Show settings for video captioning.
+     * <p>
+     * In some cases, a matching Activity may not exist, so ensure you safeguard
+     * against this.
+     * <p>
+     * Input: Nothing.
+     * <p>
+     * Output: Nothing.
+     */
+    @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+    public static final String ACTION_CAPTIONING_SETTINGS = "android.settings.CAPTIONING_SETTINGS";
+
     // End of Intent actions for Settings
 
     /**
@@ -3588,7 +3601,7 @@
          * <li>{@link #ACCESSIBILITY_CAPTIONING_EDGE_COLOR}
          * <li>{@link #ACCESSIBILITY_CAPTIONING_EDGE_TYPE}
          * <li>{@link #ACCESSIBILITY_CAPTIONING_TYPEFACE}
-         * <li>{@link #ACCESSIBILITY_CAPTIONING_FONT_SIZE}
+         * <li>{@link #ACCESSIBILITY_CAPTIONING_FONT_SCALE}
          * </ul>
          *
          * @hide
@@ -3610,9 +3623,8 @@
          * Integer property that specifies the preset style for captions, one
          * of:
          * <ul>
-         * <li>{@link android.view.accessibility.CaptioningManager#PRESET_WHITE_ON_BLACK}
-         * <li>{@link android.view.accessibility.CaptioningManager#PRESET_BLACK_ON_WHITE}
-         * <li>{@link android.view.accessibility.CaptioningManager#PRESET_CUSTOM}
+         * <li>{@link android.view.accessibility.CaptioningManager.CaptionStyle#PRESET_CUSTOM}
+         * <li>a valid index of {@link android.view.accessibility.CaptioningManager.CaptionStyle#PRESETS}
          * </ul>
          *
          * @see java.util.Locale#toString
@@ -3644,9 +3656,9 @@
         /**
          * Integer property that specifes the edge type for captions, one of:
          * <ul>
-         * <li>{@link android.view.accessibility.CaptioningManager#EDGE_TYPE_NONE}
-         * <li>{@link android.view.accessibility.CaptioningManager#EDGE_TYPE_OUTLINE}
-         * <li>{@link android.view.accessibility.CaptioningManager#EDGE_TYPE_DROP_SHADOWED}
+         * <li>{@link android.view.accessibility.CaptioningManager.CaptionStyle#EDGE_TYPE_NONE}
+         * <li>{@link android.view.accessibility.CaptioningManager.CaptionStyle#EDGE_TYPE_OUTLINE}
+         * <li>{@link android.view.accessibility.CaptioningManager.CaptionStyle#EDGE_TYPE_DROP_SHADOW}
          * </ul>
          *
          * @see #ACCESSIBILITY_CAPTIONING_EDGE_COLOR
@@ -3682,13 +3694,12 @@
                 "accessibility_captioning_typeface";
 
         /**
-         * Integer point property that specifies font size for captions in
-         * scaled pixels (sp).
+         * Floating point property that specifies font scaling for captions.
          *
          * @hide
          */
-        public static final String ACCESSIBILITY_CAPTIONING_FONT_SIZE =
-                "accessibility_captioning_font_size";
+        public static final String ACCESSIBILITY_CAPTIONING_FONT_SCALE =
+                "accessibility_captioning_font_scale";
 
         /**
          * The timout for considering a press to be a long press in milliseconds.
@@ -4285,12 +4296,6 @@
         public static final String NFC_PAYMENT_DEFAULT_COMPONENT = "nfc_payment_default_component";
 
         /**
-         * Whether to automatically invoke NFC payment app or manually select on tap.
-         * @hide
-         */
-        public static final String NFC_PAYMENT_MODE = "nfc_payment_mode";
-
-        /**
          * Name of a package that the current user has explicitly allowed to see all of that
          * user's notifications.
          *
@@ -4333,7 +4338,7 @@
             ACCESSIBILITY_CAPTIONING_EDGE_TYPE,
             ACCESSIBILITY_CAPTIONING_EDGE_COLOR,
             ACCESSIBILITY_CAPTIONING_TYPEFACE,
-            ACCESSIBILITY_CAPTIONING_FONT_SIZE,
+            ACCESSIBILITY_CAPTIONING_FONT_SCALE,
             TTS_USE_DEFAULTS,
             TTS_DEFAULT_RATE,
             TTS_DEFAULT_PITCH,
diff --git a/core/java/android/speech/hotword/HotwordRecognitionService.java b/core/java/android/speech/hotword/HotwordRecognitionService.java
index c16d2a9..521d06d 100644
--- a/core/java/android/speech/hotword/HotwordRecognitionService.java
+++ b/core/java/android/speech/hotword/HotwordRecognitionService.java
@@ -21,7 +21,6 @@
 import android.app.PendingIntent;
 import android.app.Service;
 import android.content.Intent;
-import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.IBinder;
@@ -113,8 +112,9 @@
                 listener.onHotwordError(HotwordRecognizer.ERROR_RECOGNIZER_BUSY);
                 Log.w(TAG, "stopRecognition called by a different caller - ignoring");
             } else { // the correct state
-                HotwordRecognitionService.this.onStopHotwordRecognition(mCurrentCallback);
+                mCurrentCallback.onHotwordRecognitionStopped();
                 mCurrentCallback = null;
+                HotwordRecognitionService.this.onStopHotwordRecognition();
             }
         } catch (RemoteException e) { // occurs if onError fails
             if (DBG) Log.d(TAG, "onError call from stopRecognition failed");
@@ -139,27 +139,6 @@
     }
 
     /**
-     * Checks whether the caller has sufficient permissions
-     *
-     * @param listener to send the error message to in case of error
-     * @return {@code true} if the caller has enough permissions, {@code false} otherwise
-     */
-    private boolean checkPermissions(IHotwordRecognitionListener listener) {
-        if (DBG) Log.d(TAG, "checkPermissions");
-        if (checkCallingOrSelfPermission(
-                android.Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED) {
-            return true;
-        }
-        try {
-            Log.e(TAG, "Recognition service called without RECORD_AUDIO permissions");
-            listener.onHotwordError(HotwordRecognizer.ERROR_FAILED);
-        } catch (RemoteException e) {
-            Log.e(TAG, "onHotwordError(ERROR_INSUFFICIENT_PERMISSIONS) message failed", e);
-        }
-        return false;
-    }
-
-    /**
      * Notifies the service to start a recognition.
      *
      * @param callback that receives the callbacks from the service.
@@ -168,10 +147,8 @@
 
     /**
      * Notifies the service to stop recognition.
-     *
-     * @param callback that receives the callbacks from the service.
      */
-    public abstract void onStopHotwordRecognition(Callback callback);
+    public abstract void onStopHotwordRecognition();
 
     /** Binder of the hotword recognition service */
     private static class RecognitionServiceBinder extends IHotwordRecognitionService.Stub {
@@ -183,7 +160,7 @@
 
         public void startHotwordRecognition(IHotwordRecognitionListener listener) {
             if (DBG) Log.d(TAG, "startRecognition called by: " + listener.asBinder());
-            if (mInternalService != null && mInternalService.checkPermissions(listener)) {
+            if (mInternalService != null) {
                 mInternalService.mHandler.sendMessage(
                         Message.obtain(mInternalService.mHandler, MSG_START_RECOGNITION, listener));
             }
diff --git a/core/java/android/speech/hotword/HotwordRecognizer.java b/core/java/android/speech/hotword/HotwordRecognizer.java
index c6bd1f3..82cec10 100644
--- a/core/java/android/speech/hotword/HotwordRecognizer.java
+++ b/core/java/android/speech/hotword/HotwordRecognizer.java
@@ -21,6 +21,8 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.os.Bundle;
 import android.os.Handler;
@@ -82,7 +84,6 @@
     /** action codes */
     private static final int MSG_START = 1;
     private static final int MSG_STOP = 2;
-    private final static int MSG_CHANGE_LISTENER = 3;
 
     /** The underlying HotwordRecognitionService endpoint */
     private IHotwordRecognitionService mService;
@@ -107,9 +108,6 @@
                 case MSG_STOP:
                     handleStopRecognition();
                     break;
-                case MSG_CHANGE_LISTENER:
-                    handleChangeListener((HotwordRecognitionListener) msg.obj);
-                    break;
             }
         }
     };
@@ -138,24 +136,38 @@
     }
 
     /**
-     * Factory method to create a new {@code HotwordRecognizer}. Please note that
-     * {@link #setRecognitionListener(HotwordRecognitionListener)}
-     * should be called before dispatching any command to the created {@code HotwordRecognizer},
-     * otherwise no notifications will be received.
+     * Factory method to create a new {@code HotwordRecognizer}.
      *
      * @param context in which to create {@code HotwordRecognizer}
      * @return a new {@code HotwordRecognizer}
      */
     public static HotwordRecognizer createHotwordRecognizer(final Context context) {
-        return createHotwordRecognizer(context, null);
+        ComponentName serviceComponent = null;
+        // Resolve to a default ComponentName.
+        final List<ResolveInfo> list = context.getPackageManager().queryIntentServices(
+                new Intent(HotwordRecognitionService.SERVICE_INTERFACE), 0);
+        for (int i = 0; i < list.size(); i++) {
+            final ResolveInfo ri = list.get(i);
+            if (!ri.serviceInfo.enabled) {
+                continue;
+            }
+            if ((ri.serviceInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)
+                    != PackageManager.MATCH_DEFAULT_ONLY) {
+                serviceComponent = new ComponentName(
+                        ri.serviceInfo.packageName, ri.serviceInfo.name);
+                break;
+            }
+        }
+        // If all else fails, pick the first one.
+        if (serviceComponent == null && !list.isEmpty()) {
+            serviceComponent =  new ComponentName(
+                    list.get(0).serviceInfo.packageName, list.get(0).serviceInfo.name);
+        }
+        return createHotwordRecognizer(context, serviceComponent);
     }
 
-
     /**
-     * Factory method to create a new {@code HotwordRecognizer}. Please note that
-     * {@link #setRecognitionListener(HotwordRecognitionListener)}
-     * should be called before dispatching any command to the created {@code HotwordRecognizer},
-     * otherwise no notifications will be received.
+     * Factory method to create a new {@code HotwordRecognizer}.
      *
      * Use this version of the method to specify a specific service to direct this
      * {@link HotwordRecognizer} to. Normally you would not use this; use
@@ -177,40 +189,26 @@
     }
 
     /**
-     * Sets the listener that will receive all the callbacks. The previous unfinished commands will
-     * be executed with the old listener, while any following command will be executed with the new
-     * listener.
+     * Starts recognizing hotword and sets the listener that will receive the callbacks.
      *
      * @param listener listener that will receive all the callbacks from the created
      *        {@link HotwordRecognizer}, this must not be null.
      */
-    public void setRecognitionListener(HotwordRecognitionListener listener) {
-        checkIsCalledFromMainThread();
-        putMessage(Message.obtain(mHandler, MSG_CHANGE_LISTENER, listener));
-    }
-
-    /**
-     * Starts recognizing hotword. Please note that
-     * {@link #setRecognitionListener(HotwordRecognitionListener)} should be called beforehand,
-     * otherwise no notifications will be received.
-     */
-    public void startRecognition() {
+    public void startRecognition(HotwordRecognitionListener listener) {
         checkIsCalledFromMainThread();
         if (mConnection == null) { // first time connection
+            if (listener == null) {
+                throw new IllegalArgumentException("listener must not be null");
+            }
+
             mConnection = new Connection();
-
             Intent serviceIntent = new Intent(HotwordRecognitionService.SERVICE_INTERFACE);
-
+            mListener.mInternalListener = listener;
 
             if (mServiceComponent == null) {
-                // TODO: Resolve the ComponentName here and use it.
-                String serviceComponent = null;
-                if (TextUtils.isEmpty(serviceComponent)) {
-                    Log.e(TAG, "no selected voice recognition service");
-                    mListener.onHotwordError(ERROR_CLIENT);
-                    return;
-                }
-                serviceIntent.setComponent(ComponentName.unflattenFromString(serviceComponent));
+                Log.e(TAG, "no selected voice recognition service");
+                mListener.onHotwordError(ERROR_CLIENT);
+                return;
             } else {
                 serviceIntent.setComponent(mServiceComponent);
             }
@@ -222,17 +220,15 @@
                 mListener.onHotwordError(ERROR_CLIENT);
                 return;
             }
+            putMessage(Message.obtain(mHandler, MSG_START));
         } else {
             mListener.onHotwordError(ERROR_SERVICE_ALREADY_STARTED);
             return;
         }
-        putMessage(Message.obtain(mHandler, MSG_START));
     }
 
     /**
-     * Stops recognizing hotword. Please note that
-     * {@link #setRecognitionListener(HotwordRecognitionListener)} should be called beforehand,
-     * otherwise no notifications will be received.
+     * Stops recognizing hotword.
      */
     public void stopRecognition() {
         checkIsCalledFromMainThread();
@@ -245,19 +241,6 @@
         mServiceComponent = serviceComponent;
     }
 
-    /**
-     * Destroys the {@code HotwordRecognizer} object.
-     */
-    public void destroy() {
-        if (mConnection != null) {
-            mContext.unbindService(mConnection);
-        }
-        mPendingTasks.clear();
-        mService = null;
-        mConnection = null;
-        mListener.mInternalListener = null;
-    }
-
     private void handleStartRecognition() {
         if (!checkOpenConnection()) {
             return;
@@ -271,26 +254,27 @@
         }
     }
 
-
     private void handleStopRecognition() {
         if (!checkOpenConnection()) {
             return;
         }
         try {
             mService.stopHotwordRecognition(mListener);
+            if (mConnection != null) {
+                mContext.unbindService(mConnection);
+            }
             if (DBG) Log.d(TAG, "service stopRecognition command succeeded");
         } catch (final RemoteException e) {
             Log.e(TAG, "stopRecognition() failed", e);
             mListener.onHotwordError(ERROR_CLIENT);
+        } finally {
+            mPendingTasks.clear();
+            mService = null;
+            mConnection = null;
+            mListener.mInternalListener = null;
         }
     }
 
-    /** changes the listener */
-    private void handleChangeListener(HotwordRecognitionListener listener) {
-        if (DBG) Log.d(TAG, "handleChangeListener, listener=" + listener);
-        mListener.mInternalListener = listener;
-    }
-
     private boolean checkOpenConnection() {
         if (mService != null) {
             return true;
diff --git a/core/java/android/speech/tts/SynthesisRequest.java b/core/java/android/speech/tts/SynthesisRequest.java
index 917a109..12a026b 100644
--- a/core/java/android/speech/tts/SynthesisRequest.java
+++ b/core/java/android/speech/tts/SynthesisRequest.java
@@ -30,7 +30,7 @@
  * </ul>
  *
  * Any additional parameters sent to the text to speech service are passed in
- * uninterpreted, see the @code{params} argument in {@link TextToSpeech#speak}
+ * uninterpreted, see the {@code params} argument in {@link TextToSpeech#speak}
  * and {@link TextToSpeech#synthesizeToFile}.
  */
 public final class SynthesisRequest {
diff --git a/core/java/android/util/LayoutDirection.java b/core/java/android/util/LayoutDirection.java
index e37d2f2..20af20b 100644
--- a/core/java/android/util/LayoutDirection.java
+++ b/core/java/android/util/LayoutDirection.java
@@ -17,11 +17,15 @@
 package android.util;
 
 /**
- * An interface for defining layout directions. A layout direction can be left-to-right (LTR)
+ * A class for defining layout directions. A layout direction can be left-to-right (LTR)
  * or right-to-left (RTL). It can also be inherited (from a parent) or deduced from the default
  * language script of a locale.
  */
-public interface LayoutDirection {
+public final class LayoutDirection {
+
+    // No instantiation
+    private LayoutDirection() {}
+
     /**
      * Horizontal layout direction is from Left to Right.
      */
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 4a3803e..5b279ec 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -2375,20 +2375,29 @@
     public static final int SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN = 0x00000400;
 
     /**
-     * Flag for {@link #setSystemUiVisibility(int)}: View would like to receive touch events
-     * when hiding the status bar with {@link #SYSTEM_UI_FLAG_FULLSCREEN} and/or hiding the
-     * navigation bar with {@link #SYSTEM_UI_FLAG_HIDE_NAVIGATION} instead of having the system
-     * clear these flags upon interaction.  The system may compensate by temporarily overlaying
-     * semi-transparent system bars while also delivering the event.
+     * Flag for {@link #setSystemUiVisibility(int)}: View would like to remain interactive when
+     * hiding the status bar with {@link #SYSTEM_UI_FLAG_FULLSCREEN} and/or hiding the navigation
+     * bar with {@link #SYSTEM_UI_FLAG_HIDE_NAVIGATION}.  Use this flag to create an immersive
+     * experience while also hiding the system bars.  If this flag is not set,
+     * {@link #SYSTEM_UI_FLAG_HIDE_NAVIGATION} will be force cleared by the system on any user
+     * interaction, and {@link #SYSTEM_UI_FLAG_FULLSCREEN} will be force-cleared by the system
+     * if the user swipes from the top of the screen.
+     * <p>When system bars are hidden in immersive mode, they can be revealed temporarily with
+     * system gestures, such as swiping from the top of the screen.  These transient system bars
+     * will overlay app’s content, may have some degree of transparency, and will automatically
+     * hide after a short timeout.
+     * </p><p>Since this flag is a modifier for {@link #SYSTEM_UI_FLAG_FULLSCREEN} and
+     * {@link #SYSTEM_UI_FLAG_HIDE_NAVIGATION}, it only has an effect when used in combination
+     * with one or both of those flags.</p>
      */
-    public static final int SYSTEM_UI_FLAG_ALLOW_TRANSIENT = 0x00000800;
+    public static final int SYSTEM_UI_FLAG_IMMERSIVE = 0x00000800;
 
     /**
      * Flag for {@link #setSystemUiVisibility(int)}: View would like the status bar to have
      * transparency.
      *
      * <p>The transparency request may be denied if the bar is in another mode with a specific
-     * style, like {@link #SYSTEM_UI_FLAG_ALLOW_TRANSIENT transient mode}.
+     * style, like {@link #SYSTEM_UI_FLAG_IMMERSIVE immersive mode}.
      */
     public static final int SYSTEM_UI_FLAG_TRANSPARENT_STATUS = 0x00001000;
 
@@ -2397,7 +2406,7 @@
      * transparency.
      *
      * <p>The transparency request may be denied if the bar is in another mode with a specific
-     * style, like {@link #SYSTEM_UI_FLAG_ALLOW_TRANSIENT transient mode}.
+     * style, like {@link #SYSTEM_UI_FLAG_IMMERSIVE immersive mode}.
      */
     public static final int SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION = 0x00002000;
 
@@ -3390,17 +3399,16 @@
      * @param context The Context the view is running in, through which it can
      *        access the current theme, resources, etc.
      * @param attrs The attributes of the XML tag that is inflating the view.
-     * @param defStyle The default style to apply to this view. If 0, no style
-     *        will be applied (beyond what is included in the theme). This may
-     *        either be an attribute resource, whose value will be retrieved
-     *        from the current theme, or an explicit style resource.
+     * @param defStyleAttr An attribute in the current theme that contains a
+     *        reference to a style resource to apply to this view. If 0, no
+     *        default style will be applied.
      * @see #View(Context, AttributeSet)
      */
-    public View(Context context, AttributeSet attrs, int defStyle) {
+    public View(Context context, AttributeSet attrs, int defStyleAttr) {
         this(context);
 
         TypedArray a = context.obtainStyledAttributes(attrs, com.android.internal.R.styleable.View,
-                defStyle, 0);
+                defStyleAttr, 0);
 
         Drawable background = null;
 
@@ -8419,6 +8427,17 @@
 
     /**
      * Implement this method to handle touch screen motion events.
+     * <p>
+     * If this method is used to detect click actions, it is recommended that
+     * the actions be performed by implementing and calling
+     * {@link #performClick()}. This will ensure consistent system behavior,
+     * including:
+     * <ul>
+     * <li>obeying click sound preferences
+     * <li>dispatching OnClickListener calls
+     * <li>handling {@link AccessibilityNodeInfo#ACTION_CLICK ACTION_CLICK} when
+     * accessibility features are enabled
+     * </ul>
      *
      * @param event The motion event.
      * @return True if the event was handled, false otherwise.
@@ -16653,7 +16672,7 @@
      * @param visibility  Bitwise-or of flags {@link #SYSTEM_UI_FLAG_LOW_PROFILE},
      * {@link #SYSTEM_UI_FLAG_HIDE_NAVIGATION}, {@link #SYSTEM_UI_FLAG_FULLSCREEN},
      * {@link #SYSTEM_UI_FLAG_LAYOUT_STABLE}, {@link #SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION},
-     * {@link #SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN}, {@link #SYSTEM_UI_FLAG_ALLOW_TRANSIENT},
+     * {@link #SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN}, {@link #SYSTEM_UI_FLAG_IMMERSIVE},
      * {@link #SYSTEM_UI_FLAG_TRANSPARENT_STATUS},
      * and {@link #SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION}.
      */
@@ -16671,7 +16690,7 @@
      * @return  Bitwise-or of flags {@link #SYSTEM_UI_FLAG_LOW_PROFILE},
      * {@link #SYSTEM_UI_FLAG_HIDE_NAVIGATION}, {@link #SYSTEM_UI_FLAG_FULLSCREEN},
      * {@link #SYSTEM_UI_FLAG_LAYOUT_STABLE}, {@link #SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION},
-     * {@link #SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN}, {@link #SYSTEM_UI_FLAG_ALLOW_TRANSIENT},
+     * {@link #SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN}, {@link #SYSTEM_UI_FLAG_IMMERSIVE},
      * {@link #SYSTEM_UI_FLAG_TRANSPARENT_STATUS},
      * and {@link #SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION}.
      */
diff --git a/core/java/android/view/accessibility/CaptioningManager.java b/core/java/android/view/accessibility/CaptioningManager.java
index b1be24c..d4c6abe 100644
--- a/core/java/android/view/accessibility/CaptioningManager.java
+++ b/core/java/android/view/accessibility/CaptioningManager.java
@@ -17,58 +17,77 @@
 package android.view.accessibility;
 
 import android.content.ContentResolver;
+import android.content.Context;
+import android.database.ContentObserver;
 import android.graphics.Color;
 import android.graphics.Typeface;
+import android.net.Uri;
+import android.os.Handler;
 import android.provider.Settings.Secure;
 import android.text.TextUtils;
 
+import java.util.ArrayList;
 import java.util.Locale;
 
 /**
- * Contains methods for accessing preferred video captioning state and
+ * Contains methods for accessing and monitoring preferred video captioning state and visual
  * properties.
+ * <p>
+ * To obtain a handle to the captioning manager, do the following:
+ * <p>
+ * <code>
+ * <pre>CaptioningManager captioningManager =
+ *        (CaptioningManager) context.getSystemService(Context.CAPTIONING_SERVICE);</pre>
+ * </code>
  */
 public class CaptioningManager {
-    /**
-     * Activity Action: Show settings for video captioning.
-     * <p>
-     * In some cases, a matching Activity may not exist, so ensure you safeguard
-     * against this.
-     * <p>
-     * Input: Nothing.
-     * <p>
-     * Output: Nothing.
-     */
-    public static final String ACTION_CAPTIONING_SETTINGS = "android.settings.CAPTIONING_SETTINGS";
-
-    private static final int DEFAULT_PRESET = 0;
+    /** Default captioning enabled value. */
     private static final int DEFAULT_ENABLED = 0;
-    private static final float DEFAULT_FONT_SIZE = 24;
+
+    /** Default style preset as an index into {@link CaptionStyle#PRESETS}. */
+    private static final int DEFAULT_PRESET = 0;
+
+    /** Default scaling value for caption fonts. */
+    private static final float DEFAULT_FONT_SCALE = 1;
+
+    private final ArrayList<CaptioningChangeListener>
+            mListeners = new ArrayList<CaptioningChangeListener>();
+    private final Handler mHandler = new Handler();
+
+    private final ContentResolver mContentResolver;
 
     /**
-     * @param cr Resolver to access the database with.
-     * @return The user's preferred caption enabled state.
-     */
-    public static final boolean isEnabled(ContentResolver cr) {
-        return Secure.getInt(cr, Secure.ACCESSIBILITY_CAPTIONING_ENABLED, DEFAULT_ENABLED) == 1;
-    }
-
-    /**
-     * @param cr Resolver to access the database with.
-     * @return The raw locale string for the user's preferred caption language.
+     * Creates a new captioning manager for the specified context.
+     *
      * @hide
      */
-    public static final String getRawLocale(ContentResolver cr) {
-        return Secure.getString(cr, Secure.ACCESSIBILITY_CAPTIONING_LOCALE);
+    public CaptioningManager(Context context) {
+        mContentResolver = context.getContentResolver();
     }
 
     /**
-     * @param cr Resolver to access the database with.
-     * @return The locale for the user's preferred caption language, or null if
-     *         not specified.
+     * @return the user's preferred captioning enabled state
      */
-    public static final Locale getLocale(ContentResolver cr) {
-        final String rawLocale = getRawLocale(cr);
+    public final boolean isEnabled() {
+        return Secure.getInt(
+                mContentResolver, Secure.ACCESSIBILITY_CAPTIONING_ENABLED, DEFAULT_ENABLED) == 1;
+    }
+
+    /**
+     * @return the raw locale string for the user's preferred captioning
+     *         language
+     * @hide
+     */
+    public final String getRawLocale() {
+        return Secure.getString(mContentResolver, Secure.ACCESSIBILITY_CAPTIONING_LOCALE);
+    }
+
+    /**
+     * @return the locale for the user's preferred captioning language, or null
+     *         if not specified
+     */
+    public final Locale getLocale() {
+        final String rawLocale = getRawLocale();
         if (!TextUtils.isEmpty(rawLocale)) {
             final String[] splitLocale = rawLocale.split("_");
             switch (splitLocale.length) {
@@ -85,14 +104,151 @@
     }
 
     /**
-     * @param cr Resolver to access the database with.
-     * @return The user's preferred font size for video captions, or 0 if not
-     *         specified.
+     * @return the user's preferred font scaling factor for video captions, or 1 if not
+     *         specified
      */
-    public static final float getFontSize(ContentResolver cr) {
-        return Secure.getFloat(cr, Secure.ACCESSIBILITY_CAPTIONING_FONT_SIZE, DEFAULT_FONT_SIZE);
+    public final float getFontScale() {
+        return Secure.getFloat(
+                mContentResolver, Secure.ACCESSIBILITY_CAPTIONING_FONT_SCALE, DEFAULT_FONT_SCALE);
     }
 
+    /**
+     * @return the raw preset number, or the first preset if not specified
+     * @hide
+     */
+    public int getRawUserStyle() {
+        return Secure.getInt(
+                mContentResolver, Secure.ACCESSIBILITY_CAPTIONING_PRESET, DEFAULT_PRESET);
+    }
+
+    /**
+     * @return the user's preferred visual properties for captions as a
+     *         {@link CaptionStyle}, or the default style if not specified
+     */
+    public CaptionStyle getUserStyle() {
+        final int preset = getRawUserStyle();
+        if (preset == CaptionStyle.PRESET_CUSTOM) {
+            return CaptionStyle.getCustomStyle(mContentResolver);
+        }
+
+        return CaptionStyle.PRESETS[preset];
+    }
+
+    /**
+     * Adds a listener for changes in the user's preferred captioning enabled
+     * state and visual properties.
+     *
+     * @param listener the listener to add
+     */
+    public void addCaptioningStateChangeListener(CaptioningChangeListener listener) {
+        synchronized (mListeners) {
+            if (mListeners.isEmpty()) {
+                registerObserver(Secure.ACCESSIBILITY_CAPTIONING_ENABLED);
+                registerObserver(Secure.ACCESSIBILITY_CAPTIONING_FOREGROUND_COLOR);
+                registerObserver(Secure.ACCESSIBILITY_CAPTIONING_BACKGROUND_COLOR);
+                registerObserver(Secure.ACCESSIBILITY_CAPTIONING_EDGE_TYPE);
+                registerObserver(Secure.ACCESSIBILITY_CAPTIONING_EDGE_COLOR);
+                registerObserver(Secure.ACCESSIBILITY_CAPTIONING_TYPEFACE);
+                registerObserver(Secure.ACCESSIBILITY_CAPTIONING_FONT_SCALE);
+                registerObserver(Secure.ACCESSIBILITY_CAPTIONING_LOCALE);
+            }
+
+            mListeners.add(listener);
+        }
+    }
+
+    private void registerObserver(String key) {
+        mContentResolver.registerContentObserver(Secure.getUriFor(key), false, mContentObserver);
+    }
+
+    /**
+     * Removes a listener previously added using
+     * {@link #addCaptioningStateChangeListener}.
+     *
+     * @param listener the listener to remove
+     */
+    public void removeCaptioningStateChangeListener(CaptioningChangeListener listener) {
+        synchronized (mListeners) {
+            mListeners.remove(listener);
+
+            if (mListeners.isEmpty()) {
+                mContentResolver.unregisterContentObserver(mContentObserver);
+            }
+        }
+    }
+
+    private void notifyEnabledChanged() {
+        final boolean enabled = isEnabled();
+        synchronized (mListeners) {
+            for (CaptioningChangeListener listener : mListeners) {
+                listener.onEnabledChanged(enabled);
+            }
+        }
+    }
+
+    private void notifyUserStyleChanged() {
+        final CaptionStyle userStyle = getUserStyle();
+        synchronized (mListeners) {
+            for (CaptioningChangeListener listener : mListeners) {
+                listener.onUserStyleChanged(userStyle);
+            }
+        }
+    }
+
+    private void notifyLocaleChanged() {
+        final Locale locale = getLocale();
+        synchronized (mListeners) {
+            for (CaptioningChangeListener listener : mListeners) {
+                listener.onLocaleChanged(locale);
+            }
+        }
+    }
+
+    private void notifyFontScaleChanged() {
+        final float fontScale = getFontScale();
+        synchronized (mListeners) {
+            for (CaptioningChangeListener listener : mListeners) {
+                listener.onFontScaleChanged(fontScale);
+            }
+        }
+    }
+
+    private final ContentObserver mContentObserver = new ContentObserver(mHandler) {
+        @Override
+        public void onChange(boolean selfChange, Uri uri) {
+            final String uriPath = uri.getPath();
+            final String name = uriPath.substring(uriPath.lastIndexOf('/') + 1);
+            if (Secure.ACCESSIBILITY_CAPTIONING_ENABLED.equals(name)) {
+                notifyEnabledChanged();
+            } else if (Secure.ACCESSIBILITY_CAPTIONING_LOCALE.equals(name)) {
+                notifyLocaleChanged();
+            } else if (Secure.ACCESSIBILITY_CAPTIONING_FONT_SCALE.equals(name)) {
+                notifyFontScaleChanged();
+            } else {
+                // We only need a single callback when multiple style properties
+                // change in rapid succession.
+                mHandler.removeCallbacks(mStyleChangedRunnable);
+                mHandler.post(mStyleChangedRunnable);
+            }
+        }
+    };
+
+    /**
+     * Runnable posted when user style properties change. This is used to
+     * prevent unnecessary change notifications when multiple properties change
+     * in rapid succession.
+     */
+    private final Runnable mStyleChangedRunnable = new Runnable() {
+        @Override
+        public void run() {
+            notifyUserStyleChanged();
+        }
+    };
+
+    /**
+     * Specifies visual properties for video captions, including foreground and
+     * background colors, edge properties, and typeface.
+     */
     public static final class CaptionStyle {
         private static final CaptionStyle WHITE_ON_BLACK;
         private static final CaptionStyle BLACK_ON_WHITE;
@@ -155,8 +311,8 @@
         }
 
         /**
-         * @return The preferred {@link Typeface} for video captions, or null if
-         *         not specified.
+         * @return the preferred {@link Typeface} for video captions, or null if
+         *         not specified
          */
         public Typeface getTypeface() {
             if (mParsedTypeface == null && !TextUtils.isEmpty(mRawTypeface)) {
@@ -168,41 +324,20 @@
         /**
          * @hide
          */
-        public static int getRawPreset(ContentResolver cr) {
-            return Secure.getInt(cr, Secure.ACCESSIBILITY_CAPTIONING_PRESET, DEFAULT_PRESET);
-        }
-
-        /**
-         * @param cr Resolver to access the database with.
-         * @return The user's preferred caption style.
-         */
-        public static CaptionStyle defaultUserStyle(ContentResolver cr) {
-            final int preset = getRawPreset(cr);
-            if (preset == PRESET_CUSTOM) {
-                return getCustomStyle(cr);
-            }
-
-            return PRESETS[preset];
-        }
-
-        /**
-         * @hide
-         */
         public static CaptionStyle getCustomStyle(ContentResolver cr) {
+            final CaptionStyle defStyle = CaptionStyle.DEFAULT_CUSTOM;
             final int foregroundColor = Secure.getInt(
-                    cr, Secure.ACCESSIBILITY_CAPTIONING_FOREGROUND_COLOR,
-                    DEFAULT_CUSTOM.foregroundColor);
-            final int backgroundColor = Secure.getInt(cr,
-                    Secure.ACCESSIBILITY_CAPTIONING_BACKGROUND_COLOR,
-                    DEFAULT_CUSTOM.backgroundColor);
+                    cr, Secure.ACCESSIBILITY_CAPTIONING_FOREGROUND_COLOR, defStyle.foregroundColor);
+            final int backgroundColor = Secure.getInt(
+                    cr, Secure.ACCESSIBILITY_CAPTIONING_BACKGROUND_COLOR, defStyle.backgroundColor);
             final int edgeType = Secure.getInt(
-                    cr, Secure.ACCESSIBILITY_CAPTIONING_EDGE_TYPE, DEFAULT_CUSTOM.edgeType);
+                    cr, Secure.ACCESSIBILITY_CAPTIONING_EDGE_TYPE, defStyle.edgeType);
             final int edgeColor = Secure.getInt(
-                    cr, Secure.ACCESSIBILITY_CAPTIONING_EDGE_COLOR, DEFAULT_CUSTOM.edgeColor);
+                    cr, Secure.ACCESSIBILITY_CAPTIONING_EDGE_COLOR, defStyle.edgeColor);
 
             String rawTypeface = Secure.getString(cr, Secure.ACCESSIBILITY_CAPTIONING_TYPEFACE);
             if (rawTypeface == null) {
-                rawTypeface = DEFAULT_CUSTOM.mRawTypeface;
+                rawTypeface = defStyle.mRawTypeface;
             }
 
             return new CaptionStyle(
@@ -226,4 +361,45 @@
             DEFAULT_CUSTOM = WHITE_ON_BLACK;
         }
     }
+
+    /**
+     * Listener for changes in captioning properties, including enabled state
+     * and user style preferences.
+     */
+    public abstract class CaptioningChangeListener {
+        /**
+         * Called when the captioning enabled state changes.
+         *
+         * @param enabled the user's new preferred captioning enabled state
+         */
+        public void onEnabledChanged(boolean enabled) {
+        }
+
+        /**
+         * Called when the captioning user style changes.
+         *
+         * @param userStyle the user's new preferred style
+         * @see CaptioningManager#getUserStyle()
+         */
+        public void onUserStyleChanged(CaptionStyle userStyle) {
+        }
+
+        /**
+         * Called when the captioning locale changes.
+         *
+         * @param locale the preferred captioning locale
+         * @see CaptioningManager#getLocale()
+         */
+        public void onLocaleChanged(Locale locale) {
+        }
+
+        /**
+         * Called when the captioning font scaling factor changes.
+         *
+         * @param fontScale the preferred font scaling factor
+         * @see CaptioningManager#getFontScale()
+         */
+        public void onFontScaleChanged(float fontScale) {
+        }
+    }
 }
diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java
index f97e3dd..54b87de 100644
--- a/core/java/android/view/inputmethod/InputMethodManager.java
+++ b/core/java/android/view/inputmethod/InputMethodManager.java
@@ -1876,9 +1876,13 @@
     }
 
     /**
-     * Returns true if the current IME needs to offer the users a way to switch to a next input
-     * method. When the user triggers it, the IME has to call {@link #switchToNextInputMethod} to
-     * switch to a next input method which is selected by the system.
+     * Returns true if the current IME needs to offer the users ways to switch to a next input
+     * method (e.g. a globe key.).
+     * When an IME sets supportsSwitchingToNextInputMethod and this method returns true,
+     * the IME has to offer ways to to invoke {@link #switchToNextInputMethod} accordingly.
+     * <p> Note that the system determines the most appropriate next input method
+     * and subtype in order to provide the consistent user experience in switching
+     * between IMEs and subtypes.
      * @param imeToken Supplies the identifying token given to an input method when it was started,
      * which allows it to perform this operation on itself.
      */
diff --git a/core/java/android/view/transition/Move.java b/core/java/android/view/transition/Move.java
index ae7d759..fda0cd2 100644
--- a/core/java/android/view/transition/Move.java
+++ b/core/java/android/view/transition/Move.java
@@ -40,7 +40,7 @@
     private static final String PROPNAME_PARENT = "android:move:parent";
     private static final String PROPNAME_WINDOW_X = "android:move:windowX";
     private static final String PROPNAME_WINDOW_Y = "android:move:windowY";
-    private static String[] sTransitionProperties = {
+    private static final String[] sTransitionProperties = {
             PROPNAME_BOUNDS,
             PROPNAME_PARENT,
             PROPNAME_WINDOW_X,
diff --git a/core/java/android/view/transition/TextChange.java b/core/java/android/view/transition/TextChange.java
index 04ff707..7973c97 100644
--- a/core/java/android/view/transition/TextChange.java
+++ b/core/java/android/view/transition/TextChange.java
@@ -78,6 +78,10 @@
      */
     public static final int CHANGE_BEHAVIOR_OUT_IN = 3;
 
+    private static final String[] sTransitionProperties = {
+            PROPNAME_TEXT
+    };
+
     /**
      * Sets the type of changing animation that will be run, one of
      * {@link #CHANGE_BEHAVIOR_KEEP} and {@link #CHANGE_BEHAVIOR_OUT_IN}.
@@ -92,6 +96,11 @@
     }
 
     @Override
+    public String[] getTransitionProperties() {
+        return sTransitionProperties;
+    }
+
+    @Override
     protected void captureValues(TransitionValues values, boolean start) {
         if (values.view instanceof TextView) {
             TextView textview = (TextView) values.view;
@@ -111,7 +120,7 @@
         final TextView view = (TextView) endValues.view;
         Map<String, Object> startVals = startValues.values;
         Map<String, Object> endVals = endValues.values;
-        String startText = (String) startVals.get(PROPNAME_TEXT);
+        final String startText = (String) startVals.get(PROPNAME_TEXT);
         final String endText = (String) endVals.get(PROPNAME_TEXT);
         if (!startText.equals(endText)) {
             view.setText(startText);
@@ -121,7 +130,10 @@
                 anim.addListener(new AnimatorListenerAdapter() {
                     @Override
                     public void onAnimationEnd(Animator animation) {
-                        view.setText(endText);
+                        if (startText.equals(view.getText())) {
+                            // Only set if it hasn't been changed since anim started
+                            view.setText(endText);
+                        }
                     }
                 });
             } else {
@@ -143,7 +155,10 @@
                     outAnim.addListener(new AnimatorListenerAdapter() {
                         @Override
                         public void onAnimationEnd(Animator animation) {
-                            view.setText(endText);
+                            if (startText.equals(view.getText())) {
+                                // Only set if it hasn't been changed since anim started
+                                view.setText(endText);
+                            }
                         }
                     });
                 }
@@ -169,6 +184,20 @@
                     anim = inAnim;
                 }
             }
+            TransitionListener transitionListener = new TransitionListenerAdapter() {
+                boolean mCanceled = false;
+
+                @Override
+                public void onTransitionPause(Transition transition) {
+                    view.setText(endText);
+                }
+
+                @Override
+                public void onTransitionResume(Transition transition) {
+                    view.setText(startText);
+                }
+            };
+            addListener(transitionListener);
             return anim;
         }
         return null;
diff --git a/core/java/android/view/transition/Transition.java b/core/java/android/view/transition/Transition.java
index 0444843..a66fa52 100644
--- a/core/java/android/view/transition/Transition.java
+++ b/core/java/android/view/transition/Transition.java
@@ -843,7 +843,6 @@
         for (int i = numOldAnims - 1; i >= 0; i--) {
             Animator anim = runningAnimators.keyAt(i);
             if (anim != null) {
-                anim.resume();
                 AnimationInfo oldInfo = runningAnimators.get(anim);
                 if (oldInfo != null) {
                     boolean cancel = false;
@@ -851,22 +850,25 @@
                     View oldView = oldInfo.view;
                     TransitionValues newValues = mEndValues.viewValues != null ?
                             mEndValues.viewValues.get(oldView) : null;
-                    if (oldValues == null || newValues == null) {
-                        if (oldValues != null || newValues != null) {
+                    if (oldValues != null) {
+                        // if oldValues null, then transition didn't care to stash values,
+                        // and won't get canceled
+                        if (newValues == null) {
                             cancel = true;
-                        }
-                    } else {
-                        for (String key : oldValues.values.keySet()) {
-                            Object oldValue = oldValues.values.get(key);
-                            Object newValue = newValues.values.get(key);
-                            if ((oldValue == null && newValue != null) ||
-                                    (oldValue != null && !oldValue.equals(newValue))) {
-                                cancel = true;
-                                if (DBG) {
-                                    Log.d(LOG_TAG, "Transition.play: oldValue != newValue for " +
-                                            key + ": old, new = " + oldValue + ", " + newValue);
+                        } else {
+                            for (String key : oldValues.values.keySet()) {
+                                Object oldValue = oldValues.values.get(key);
+                                Object newValue = newValues.values.get(key);
+                                if (oldValue != null && newValue != null &&
+                                        !oldValue.equals(newValue)) {
+                                    cancel = true;
+                                    if (DBG) {
+                                        Log.d(LOG_TAG, "Transition.playTransition: " +
+                                                "oldValue != newValue for " + key +
+                                                ": old, new = " + oldValue + ", " + newValue);
+                                    }
+                                    break;
                                 }
-                                break;
                             }
                         }
                     }
diff --git a/core/java/android/view/transition/TransitionManager.java b/core/java/android/view/transition/TransitionManager.java
index 3cb6f68..bde891d 100644
--- a/core/java/android/view/transition/TransitionManager.java
+++ b/core/java/android/view/transition/TransitionManager.java
@@ -183,9 +183,12 @@
                     final ArrayMap<ViewGroup, ArrayList<Transition>> runningTransitions =
                             getRunningTransitions();
                     ArrayList<Transition> currentTransitions = runningTransitions.get(sceneRoot);
+                    ArrayList<Transition> previousRunningTransitions = null;
                     if (currentTransitions == null) {
                         currentTransitions = new ArrayList<Transition>();
                         runningTransitions.put(sceneRoot, currentTransitions);
+                    } else if (currentTransitions.size() > 0) {
+                        previousRunningTransitions = new ArrayList<Transition>(currentTransitions);
                     }
                     currentTransitions.add(transition);
                     transition.addListener(new Transition.TransitionListenerAdapter() {
@@ -197,6 +200,11 @@
                         }
                     });
                     transition.captureValues(sceneRoot, false);
+                    if (previousRunningTransitions != null) {
+                        for (Transition runningTransition : previousRunningTransitions) {
+                            runningTransition.resume();
+                        }
+                    }
                     transition.playTransition(sceneRoot);
 
                     // Returning false from onPreDraw() skips the current frame. This is
diff --git a/core/java/android/view/transition/Visibility.java b/core/java/android/view/transition/Visibility.java
index 4df53da..348dcfb 100644
--- a/core/java/android/view/transition/Visibility.java
+++ b/core/java/android/view/transition/Visibility.java
@@ -53,7 +53,7 @@
 
     private static final String PROPNAME_VISIBILITY = "android:visibility:visibility";
     private static final String PROPNAME_PARENT = "android:visibility:parent";
-    private static String[] sTransitionProperties = {
+    private static final String[] sTransitionProperties = {
             PROPNAME_VISIBILITY,
             PROPNAME_PARENT,
     };
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 1b57d50..eded438 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -31,7 +31,9 @@
 import android.os.CancellationSignal;
 import android.os.Looper;
 import android.os.Message;
+import android.os.ParcelFileDescriptor;
 import android.os.StrictMode;
+import android.print.PrintAttributes;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.KeyEvent;
@@ -49,7 +51,6 @@
 
 import java.io.BufferedWriter;
 import java.io.File;
-import java.io.OutputStream;
 import java.util.Map;
 
 /**
@@ -498,6 +499,8 @@
 
         ensureProviderCreated();
         mProvider.init(javaScriptInterfaces, privateBrowsing);
+        // Post condition of creating a webview is the CookieSyncManager instance exists.
+        CookieSyncManager.createInstance(getContext());
     }
 
     /**
@@ -1040,7 +1043,9 @@
      * Exports the contents of this Webview as PDF. Only supported for API levels
      * {@link android.os.Build.VERSION_CODES#KEY_LIME_PIE} and above.
      *
-     * @param out            The stream to export the PDF contents to. Cannot be null.
+     * TODO(sgurun) the parameter list is stale. Fix it before unhiding.
+     *
+     * @param fd             The FileDescriptor to export the PDF contents to. Cannot be null.
      * @param width          The page width. Should be larger than 0.
      * @param height         The page height. Should be larger than 0.
      * @param resultCallback A callback to be invoked when the PDF content is exported.
@@ -1049,21 +1054,26 @@
      *                       be null.
      *
      * The PDF conversion is done asynchronously and the PDF output is written to the provided
-     * outputstream. The caller should not close the outputstream until the resultCallback is
-     * called, indicating PDF conversion is complete. Webview cannot be drawn during the pdf
-     * export so the  application is recommended to take it offscreen, or putting in a layer
-     * with an overlaid progress UI / spinner.
+     * file descriptor. The caller should not close the file descriptor until the resultCallback
+     * is called, indicating PDF conversion is complete. Webview will never close the file
+     * descriptor.
+     * Limitations: Webview cannot be drawn during the PDF export so the  application is
+     * recommended to take it offscreen, or putting in a layer with an overlaid progress
+     * UI / spinner.
      *
      * If the caller cancels the task using the cancellationSignal, the cancellation will be
      * acked using the resultCallback signal.
      *
+     * Throws an exception if an IO error occurs accessing the file descriptor.
+     *
      * TODO(sgurun) margins, explain the units, make it public.
      * @hide
      */
-    public void exportToPdf(OutputStream out, int width, int height,
-            ValueCallback<Boolean> resultCallback, CancellationSignal cancellationSignal) {
+    public void exportToPdf(ParcelFileDescriptor fd, PrintAttributes attributes,
+            ValueCallback<Boolean> resultCallback, CancellationSignal cancellationSignal)
+            throws java.io.IOException {
         checkThread();
-        mProvider.exportToPdf(out, width, height, resultCallback, cancellationSignal);
+        mProvider.exportToPdf(fd, attributes, resultCallback, cancellationSignal);
     }
 
     /**
diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java
index db98d30..b1a7878 100644
--- a/core/java/android/webkit/WebViewClassic.java
+++ b/core/java/android/webkit/WebViewClassic.java
@@ -62,6 +62,7 @@
 import android.os.Looper;
 import android.os.Message;
 import android.os.SystemClock;
+import android.print.PrintAttributes;
 import android.security.KeyChain;
 import android.text.Editable;
 import android.text.InputType;
@@ -2896,11 +2897,11 @@
      * See {@link WebView#exportToPdf()}
      */
     @Override
-    public void exportToPdf(java.io.OutputStream out, int width, int height,
-            ValueCallback<Boolean> resultCallback, CancellationSignal cancellationSignal) {
+    public void exportToPdf(android.os.ParcelFileDescriptor fd, PrintAttributes attributes,
+            ValueCallback<Boolean> resultCallback, CancellationSignal cancellationSignal)
+            throws java.io.IOException {
         // K-only API not implemented in WebViewClassic.
         throw new IllegalStateException("This API not supported on Android 4.3 and earlier");
-
     }
 
     /**
diff --git a/core/java/android/webkit/WebViewProvider.java b/core/java/android/webkit/WebViewProvider.java
index 8fe6edf..d625d8a 100644
--- a/core/java/android/webkit/WebViewProvider.java
+++ b/core/java/android/webkit/WebViewProvider.java
@@ -27,6 +27,8 @@
 import android.os.Bundle;
 import android.os.CancellationSignal;
 import android.os.Message;
+import android.os.ParcelFileDescriptor;
+import android.print.PrintAttributes;
 import android.view.KeyEvent;
 import android.view.MotionEvent;
 import android.view.View;
@@ -41,7 +43,6 @@
 
 import java.io.BufferedWriter;
 import java.io.File;
-import java.io.OutputStream;
 import java.util.Map;
 
 /**
@@ -148,8 +149,9 @@
 
     public Picture capturePicture();
 
-    public void exportToPdf(OutputStream out, int width, int height,
-            ValueCallback<Boolean> resultCallback, CancellationSignal cancellationSignal);
+    public void exportToPdf(ParcelFileDescriptor fd, PrintAttributes attributes,
+            ValueCallback<Boolean> resultCallback, CancellationSignal cancellationSignal)
+            throws java.io.IOException;
 
     public float getScale();
 
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index 285e6f2..be47bf0 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -2309,33 +2309,7 @@
             super.onInitializeAccessibilityNodeInfo(host, info);
 
             final int position = getPositionForView(host);
-            final ListAdapter adapter = getAdapter();
-
-            if ((position == INVALID_POSITION) || (adapter == null)) {
-                return;
-            }
-
-            if (!isEnabled() || !adapter.isEnabled(position)) {
-                return;
-            }
-
-            if (position == getSelectedItemPosition()) {
-                info.setSelected(true);
-                info.addAction(AccessibilityNodeInfo.ACTION_CLEAR_SELECTION);
-            } else {
-                info.addAction(AccessibilityNodeInfo.ACTION_SELECT);
-            }
-
-            if (isClickable()) {
-                info.addAction(AccessibilityNodeInfo.ACTION_CLICK);
-                info.setClickable(true);
-            }
-
-            if (isLongClickable()) {
-                info.addAction(AccessibilityNodeInfo.ACTION_LONG_CLICK);
-                info.setLongClickable(true);
-            }
-
+            onInitializeAccessibilityNodeInfoForItem(host, position, info);
         }
 
         @Override
@@ -2388,6 +2362,45 @@
         }
     }
 
+    /**
+     * Initializes an {@link AccessibilityNodeInfo} with information about a
+     * particular item in the list.
+     *
+     * @param view View representing the list item.
+     * @param position Position of the list item within the adapter.
+     * @param info Node info to populate.
+     */
+    public void onInitializeAccessibilityNodeInfoForItem(
+            View view, int position, AccessibilityNodeInfo info) {
+        final ListAdapter adapter = getAdapter();
+        if (position == INVALID_POSITION || adapter == null) {
+            // The item doesn't exist, so there's not much we can do here.
+            return;
+        }
+
+        if (!isEnabled() || !adapter.isEnabled(position)) {
+            info.setEnabled(false);
+            return;
+        }
+
+        if (position == getSelectedItemPosition()) {
+            info.setSelected(true);
+            info.addAction(AccessibilityNodeInfo.ACTION_CLEAR_SELECTION);
+        } else {
+            info.addAction(AccessibilityNodeInfo.ACTION_SELECT);
+        }
+
+        if (isClickable()) {
+            info.addAction(AccessibilityNodeInfo.ACTION_CLICK);
+            info.setClickable(true);
+        }
+
+        if (isLongClickable()) {
+            info.addAction(AccessibilityNodeInfo.ACTION_LONG_CLICK);
+            info.setLongClickable(true);
+        }
+    }
+
     void positionSelector(int position, View sel) {
         if (position != INVALID_POSITION) {
             mSelectorPosition = position;
diff --git a/core/java/android/widget/CalendarView.java b/core/java/android/widget/CalendarView.java
index 6970cde..de2be75 100644
--- a/core/java/android/widget/CalendarView.java
+++ b/core/java/android/widget/CalendarView.java
@@ -1028,26 +1028,29 @@
      * Sets up the strings to be used by the header.
      */
     private void setUpHeader() {
+        final String[] tinyWeekdayNames = LocaleData.get(Locale.getDefault()).tinyWeekdayNames;
         mDayLabels = new String[mDaysPerWeek];
-        for (int i = mFirstDayOfWeek, count = mFirstDayOfWeek + mDaysPerWeek; i < count; i++) {
-            int calendarDay = (i > Calendar.SATURDAY) ? i - Calendar.SATURDAY : i;
-            mDayLabels[i - mFirstDayOfWeek] = DateUtils.getDayOfWeekString(calendarDay,
-                    DateUtils.LENGTH_SHORTEST);
+        for (int i = 0; i < mDaysPerWeek; i++) {
+            final int j = i + mFirstDayOfWeek;
+            final int calendarDay = (j > Calendar.SATURDAY) ? j - Calendar.SATURDAY : j;
+            mDayLabels[i] = tinyWeekdayNames[calendarDay];
         }
-
+        // Deal with week number
         TextView label = (TextView) mDayNamesHeader.getChildAt(0);
         if (mShowWeekNumber) {
             label.setVisibility(View.VISIBLE);
         } else {
             label.setVisibility(View.GONE);
         }
-        for (int i = 1, count = mDayNamesHeader.getChildCount(); i < count; i++) {
-            label = (TextView) mDayNamesHeader.getChildAt(i);
+        // Deal with day labels
+        final int count = mDayNamesHeader.getChildCount();
+        for (int i = 0; i < count - 1; i++) {
+            label = (TextView) mDayNamesHeader.getChildAt(i + 1);
             if (mWeekDayTextAppearanceResId > -1) {
                 label.setTextAppearance(mContext, mWeekDayTextAppearanceResId);
             }
-            if (i < mDaysPerWeek + 1) {
-                label.setText(mDayLabels[i - 1]);
+            if (i < mDaysPerWeek) {
+                label.setText(mDayLabels[i]);
                 label.setVisibility(View.VISIBLE);
             } else {
                 label.setVisibility(View.GONE);
diff --git a/core/java/android/widget/GridLayout.java b/core/java/android/widget/GridLayout.java
index 109fcfe..54cc3f4 100644
--- a/core/java/android/widget/GridLayout.java
+++ b/core/java/android/widget/GridLayout.java
@@ -251,14 +251,14 @@
 
     // Instance variables
 
-    final Axis horizontalAxis = new Axis(true);
-    final Axis verticalAxis = new Axis(false);
-    int orientation = DEFAULT_ORIENTATION;
-    boolean useDefaultMargins = DEFAULT_USE_DEFAULT_MARGINS;
-    int alignmentMode = DEFAULT_ALIGNMENT_MODE;
-    int defaultGap;
-    int lastLayoutParamsHashCode = UNINITIALIZED_HASH;
-    Printer printer = LOG_PRINTER;
+    final Axis mHorizontalAxis = new Axis(true);
+    final Axis mVerticalAxis = new Axis(false);
+    int mOrientation = DEFAULT_ORIENTATION;
+    boolean mUseDefaultMargins = DEFAULT_USE_DEFAULT_MARGINS;
+    int mAlignmentMode = DEFAULT_ALIGNMENT_MODE;
+    int mDefaultGap;
+    int mLastLayoutParamsHashCode = UNINITIALIZED_HASH;
+    Printer mPrinter = LOG_PRINTER;
 
     // Constructors
 
@@ -267,7 +267,7 @@
      */
     public GridLayout(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
-        defaultGap = context.getResources().getDimensionPixelOffset(R.dimen.default_gap);
+        mDefaultGap = context.getResources().getDimensionPixelOffset(R.dimen.default_gap);
         TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.GridLayout);
         try {
             setRowCount(a.getInt(ROW_COUNT, DEFAULT_COUNT));
@@ -309,7 +309,7 @@
      * @attr ref android.R.styleable#GridLayout_orientation
      */
     public int getOrientation() {
-        return orientation;
+        return mOrientation;
     }
 
     /**
@@ -349,8 +349,8 @@
      * @attr ref android.R.styleable#GridLayout_orientation
      */
     public void setOrientation(int orientation) {
-        if (this.orientation != orientation) {
-            this.orientation = orientation;
+        if (this.mOrientation != orientation) {
+            this.mOrientation = orientation;
             invalidateStructure();
             requestLayout();
         }
@@ -369,7 +369,7 @@
      * @attr ref android.R.styleable#GridLayout_rowCount
      */
     public int getRowCount() {
-        return verticalAxis.getCount();
+        return mVerticalAxis.getCount();
     }
 
     /**
@@ -384,7 +384,7 @@
      * @attr ref android.R.styleable#GridLayout_rowCount
      */
     public void setRowCount(int rowCount) {
-        verticalAxis.setCount(rowCount);
+        mVerticalAxis.setCount(rowCount);
         invalidateStructure();
         requestLayout();
     }
@@ -402,7 +402,7 @@
      * @attr ref android.R.styleable#GridLayout_columnCount
      */
     public int getColumnCount() {
-        return horizontalAxis.getCount();
+        return mHorizontalAxis.getCount();
     }
 
     /**
@@ -417,7 +417,7 @@
      * @attr ref android.R.styleable#GridLayout_columnCount
      */
     public void setColumnCount(int columnCount) {
-        horizontalAxis.setCount(columnCount);
+        mHorizontalAxis.setCount(columnCount);
         invalidateStructure();
         requestLayout();
     }
@@ -433,7 +433,7 @@
      * @attr ref android.R.styleable#GridLayout_useDefaultMargins
      */
     public boolean getUseDefaultMargins() {
-        return useDefaultMargins;
+        return mUseDefaultMargins;
     }
 
     /**
@@ -463,7 +463,7 @@
      * @attr ref android.R.styleable#GridLayout_useDefaultMargins
      */
     public void setUseDefaultMargins(boolean useDefaultMargins) {
-        this.useDefaultMargins = useDefaultMargins;
+        this.mUseDefaultMargins = useDefaultMargins;
         requestLayout();
     }
 
@@ -480,7 +480,7 @@
      * @attr ref android.R.styleable#GridLayout_alignmentMode
      */
     public int getAlignmentMode() {
-        return alignmentMode;
+        return mAlignmentMode;
     }
 
     /**
@@ -499,7 +499,7 @@
      * @attr ref android.R.styleable#GridLayout_alignmentMode
      */
     public void setAlignmentMode(int alignmentMode) {
-        this.alignmentMode = alignmentMode;
+        this.mAlignmentMode = alignmentMode;
         requestLayout();
     }
 
@@ -514,7 +514,7 @@
      * @attr ref android.R.styleable#GridLayout_rowOrderPreserved
      */
     public boolean isRowOrderPreserved() {
-        return verticalAxis.isOrderPreserved();
+        return mVerticalAxis.isOrderPreserved();
     }
 
     /**
@@ -534,7 +534,7 @@
      * @attr ref android.R.styleable#GridLayout_rowOrderPreserved
      */
     public void setRowOrderPreserved(boolean rowOrderPreserved) {
-        verticalAxis.setOrderPreserved(rowOrderPreserved);
+        mVerticalAxis.setOrderPreserved(rowOrderPreserved);
         invalidateStructure();
         requestLayout();
     }
@@ -550,7 +550,7 @@
      * @attr ref android.R.styleable#GridLayout_columnOrderPreserved
      */
     public boolean isColumnOrderPreserved() {
-        return horizontalAxis.isOrderPreserved();
+        return mHorizontalAxis.isOrderPreserved();
     }
 
     /**
@@ -570,7 +570,7 @@
      * @attr ref android.R.styleable#GridLayout_columnOrderPreserved
      */
     public void setColumnOrderPreserved(boolean columnOrderPreserved) {
-        horizontalAxis.setOrderPreserved(columnOrderPreserved);
+        mHorizontalAxis.setOrderPreserved(columnOrderPreserved);
         invalidateStructure();
         requestLayout();
     }
@@ -581,9 +581,11 @@
      * @see #setPrinter(android.util.Printer)
      *
      * @return the printer associated with this view
+     *
+     * @hide
      */
     public Printer getPrinter() {
-        return printer;
+        return mPrinter;
     }
 
     /**
@@ -593,9 +595,11 @@
      * @param printer the printer associated with this layout
      *
      * @see #getPrinter()
+     *
+     * @hide
      */
     public void setPrinter(Printer printer) {
-        this.printer = (printer == null) ? NO_PRINTER : printer;
+        this.mPrinter = (printer == null) ? NO_PRINTER : printer;
     }
 
     // Static utility methods
@@ -643,7 +647,7 @@
         if (c.getClass() == Space.class) {
             return 0;
         }
-        return defaultGap / 2;
+        return mDefaultGap / 2;
     }
 
     private int getDefaultMargin(View c, boolean isAtEdge, boolean horizontal, boolean leading) {
@@ -651,11 +655,11 @@
     }
 
     private int getDefaultMargin(View c, LayoutParams p, boolean horizontal, boolean leading) {
-        if (!useDefaultMargins) {
+        if (!mUseDefaultMargins) {
             return 0;
         }
         Spec spec = horizontal ? p.columnSpec : p.rowSpec;
-        Axis axis = horizontal ? horizontalAxis : verticalAxis;
+        Axis axis = horizontal ? mHorizontalAxis : mVerticalAxis;
         Interval span = spec.span;
         boolean leading1 = (horizontal && isLayoutRtl()) ? !leading : leading;
         boolean isAtEdge = leading1 ? (span.min == 0) : (span.max == axis.getCount());
@@ -672,10 +676,10 @@
     }
 
     private int getMargin(View view, boolean horizontal, boolean leading) {
-        if (alignmentMode == ALIGN_MARGINS) {
+        if (mAlignmentMode == ALIGN_MARGINS) {
             return getMargin1(view, horizontal, leading);
         } else {
-            Axis axis = horizontal ? horizontalAxis : verticalAxis;
+            Axis axis = horizontal ? mHorizontalAxis : mVerticalAxis;
             int[] margins = leading ? axis.getLeadingMargins() : axis.getTrailingMargins();
             LayoutParams lp = getLayoutParams(view);
             Spec spec = horizontal ? lp.columnSpec : lp.rowSpec;
@@ -722,8 +726,8 @@
 
     // install default indices for cells that don't define them
     private void validateLayoutParams() {
-        final boolean horizontal = (orientation == HORIZONTAL);
-        final Axis axis = horizontal ? horizontalAxis : verticalAxis;
+        final boolean horizontal = (mOrientation == HORIZONTAL);
+        final Axis axis = horizontal ? mHorizontalAxis : mVerticalAxis;
         final int count = (axis.definedCount != UNDEFINED) ? axis.definedCount : 0;
 
         int major = 0;
@@ -779,9 +783,9 @@
     }
 
     private void invalidateStructure() {
-        lastLayoutParamsHashCode = UNINITIALIZED_HASH;
-        horizontalAxis.invalidateStructure();
-        verticalAxis.invalidateStructure();
+        mLastLayoutParamsHashCode = UNINITIALIZED_HASH;
+        mHorizontalAxis.invalidateStructure();
+        mVerticalAxis.invalidateStructure();
         // This can end up being done twice. Better twice than not at all.
         invalidateValues();
     }
@@ -789,9 +793,9 @@
     private void invalidateValues() {
         // Need null check because requestLayout() is called in View's initializer,
         // before we are set up.
-        if (horizontalAxis != null && verticalAxis != null) {
-            horizontalAxis.invalidateValues();
-            verticalAxis.invalidateValues();
+        if (mHorizontalAxis != null && mVerticalAxis != null) {
+            mHorizontalAxis.invalidateValues();
+            mVerticalAxis.invalidateValues();
         }
     }
 
@@ -822,7 +826,7 @@
         if (span.min != UNDEFINED && span.min < 0) {
             handleInvalidParams(groupName + " indices must be positive");
         }
-        Axis axis = horizontal ? horizontalAxis : verticalAxis;
+        Axis axis = horizontal ? mHorizontalAxis : mVerticalAxis;
         int count = axis.definedCount;
         if (count != UNDEFINED) {
             if (span.max > count) {
@@ -908,7 +912,7 @@
         int right  = getWidth()  - getPaddingRight()  - insets.right;
         int bottom = getHeight() - getPaddingBottom() - insets.bottom;
 
-        int[] xs = horizontalAxis.locations;
+        int[] xs = mHorizontalAxis.locations;
         if (xs != null) {
             for (int i = 0, length = xs.length; i < length; i++) {
                 int x = left + xs[i];
@@ -916,7 +920,7 @@
             }
         }
 
-        int[] ys = verticalAxis.locations;
+        int[] ys = mVerticalAxis.locations;
         if (ys != null) {
             for (int i = 0, length = ys.length; i < length; i++) {
                 int y = top + ys[i];
@@ -973,11 +977,11 @@
     }
 
     private void consistencyCheck() {
-        if (lastLayoutParamsHashCode == UNINITIALIZED_HASH) {
+        if (mLastLayoutParamsHashCode == UNINITIALIZED_HASH) {
             validateLayoutParams();
-            lastLayoutParamsHashCode = computeLayoutParamsHashCode();
-        } else if (lastLayoutParamsHashCode != computeLayoutParamsHashCode()) {
-            printer.println("The fields of some layout parameters were modified in between "
+            mLastLayoutParamsHashCode = computeLayoutParamsHashCode();
+        } else if (mLastLayoutParamsHashCode != computeLayoutParamsHashCode()) {
+            mPrinter.println("The fields of some layout parameters were modified in between "
                     + "layout operations. Check the javadoc for GridLayout.LayoutParams#rowSpec.");
             invalidateStructure();
             consistencyCheck();
@@ -1005,11 +1009,11 @@
             if (firstPass) {
                 measureChildWithMargins2(c, widthSpec, heightSpec, lp.width, lp.height);
             } else {
-                boolean horizontal = (orientation == HORIZONTAL);
+                boolean horizontal = (mOrientation == HORIZONTAL);
                 Spec spec = horizontal ? lp.columnSpec : lp.rowSpec;
                 if (spec.alignment == FILL) {
                     Interval span = spec.span;
-                    Axis axis = horizontal ? horizontalAxis : verticalAxis;
+                    Axis axis = horizontal ? mHorizontalAxis : mVerticalAxis;
                     int[] locations = axis.getLocations();
                     int cellSize = locations[span.max] - locations[span.min];
                     int viewSize = cellSize - getTotalMargin(c, horizontal);
@@ -1048,14 +1052,14 @@
         int heightSansPadding;
 
         // Use the orientation property to decide which axis should be laid out first.
-        if (orientation == HORIZONTAL) {
-            widthSansPadding = horizontalAxis.getMeasure(widthSpecSansPadding);
+        if (mOrientation == HORIZONTAL) {
+            widthSansPadding = mHorizontalAxis.getMeasure(widthSpecSansPadding);
             measureChildrenWithMargins(widthSpecSansPadding, heightSpecSansPadding, false);
-            heightSansPadding = verticalAxis.getMeasure(heightSpecSansPadding);
+            heightSansPadding = mVerticalAxis.getMeasure(heightSpecSansPadding);
         } else {
-            heightSansPadding = verticalAxis.getMeasure(heightSpecSansPadding);
+            heightSansPadding = mVerticalAxis.getMeasure(heightSpecSansPadding);
             measureChildrenWithMargins(widthSpecSansPadding, heightSpecSansPadding, false);
-            widthSansPadding = horizontalAxis.getMeasure(widthSpecSansPadding);
+            widthSansPadding = mHorizontalAxis.getMeasure(widthSpecSansPadding);
         }
 
         int measuredWidth  = Math.max(widthSansPadding  + hPadding, getSuggestedMinimumWidth());
@@ -1114,11 +1118,11 @@
         int paddingRight = getPaddingRight();
         int paddingBottom = getPaddingBottom();
 
-        horizontalAxis.layout(targetWidth - paddingLeft - paddingRight);
-        verticalAxis.layout(targetHeight - paddingTop - paddingBottom);
+        mHorizontalAxis.layout(targetWidth - paddingLeft - paddingRight);
+        mVerticalAxis.layout(targetHeight - paddingTop - paddingBottom);
 
-        int[] hLocations = horizontalAxis.getLocations();
-        int[] vLocations = verticalAxis.getLocations();
+        int[] hLocations = mHorizontalAxis.getLocations();
+        int[] vLocations = mVerticalAxis.getLocations();
 
         for (int i = 0, N = getChildCount(); i < N; i++) {
             View c = getChildAt(i);
@@ -1145,8 +1149,8 @@
             Alignment hAlign = getAlignment(columnSpec.alignment, true);
             Alignment vAlign = getAlignment(rowSpec.alignment, false);
 
-            Bounds boundsX = horizontalAxis.getGroupBounds().getValue(i);
-            Bounds boundsY = verticalAxis.getGroupBounds().getValue(i);
+            Bounds boundsX = mHorizontalAxis.getGroupBounds().getValue(i);
+            Bounds boundsY = mVerticalAxis.getGroupBounds().getValue(i);
 
             // Gravity offsets: the location of the alignment group relative to its cell group.
             int gravityOffsetX = hAlign.getGravityOffset(c, cellWidth - boundsX.size(true));
@@ -1571,7 +1575,7 @@
                     removed.add(arc);
                 }
             }
-            printer.println(axisName + " constraints: " + arcsToString(culprits) +
+            mPrinter.println(axisName + " constraints: " + arcsToString(culprits) +
                     " are inconsistent; permanently removing: " + arcsToString(removed) + ". ");
         }
 
diff --git a/core/java/android/widget/GridView.java b/core/java/android/widget/GridView.java
index a7d546a..15daf83 100644
--- a/core/java/android/widget/GridView.java
+++ b/core/java/android/widget/GridView.java
@@ -30,7 +30,10 @@
 import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityNodeInfo;
+import android.view.accessibility.AccessibilityNodeInfo.CollectionInfo;
+import android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo;
 import android.view.animation.GridLayoutAnimationController;
+import android.widget.AbsListView.LayoutParams;
 import android.widget.RemoteViews.RemoteView;
 
 
@@ -2259,5 +2262,37 @@
     public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
         super.onInitializeAccessibilityNodeInfo(info);
         info.setClassName(GridView.class.getName());
+
+        final int columnsCount = getNumColumns();
+        final int rowsCount = getCount() / columnsCount;
+        final CollectionInfo collectionInfo = CollectionInfo.obtain(columnsCount, rowsCount, false);
+        info.setCollectionInfo(collectionInfo);
+    }
+
+    @Override
+    public void onInitializeAccessibilityNodeInfoForItem(
+            View view, int position, AccessibilityNodeInfo info) {
+        super.onInitializeAccessibilityNodeInfoForItem(view, position, info);
+
+        final int count = getCount();
+        final int columnsCount = getNumColumns();
+        final int rowsCount = count / columnsCount;
+
+        final int row;
+        final int column;
+        if (!mStackFromBottom) {
+            column = position % columnsCount;
+            row = position / columnsCount;
+        } else {
+            final int invertedIndex = count - 1 - position;
+
+            column = columnsCount - 1 - (invertedIndex % columnsCount);
+            row = rowsCount - 1 - invertedIndex / columnsCount;
+        }
+
+        final LayoutParams lp = (LayoutParams) view.getLayoutParams();
+        final boolean isHeading = lp != null && lp.viewType != ITEM_VIEW_TYPE_HEADER_OR_FOOTER;
+        final CollectionItemInfo itemInfo = CollectionItemInfo.obtain(column, 1, row, 1, isHeading);
+        info.setCollectionItemInfo(itemInfo);
     }
 }
diff --git a/core/java/android/widget/ListPopupWindow.java b/core/java/android/widget/ListPopupWindow.java
index 6262387..f2da765 100644
--- a/core/java/android/widget/ListPopupWindow.java
+++ b/core/java/android/widget/ListPopupWindow.java
@@ -965,6 +965,33 @@
     }
 
     /**
+     * Returns an {@link OnTouchListener} that can be added to the source view
+     * to implement drag-to-open behavior. Generally, the source view should be
+     * the same view that was passed to {@link #setAnchorView}.
+     * <p>
+     * When the listener is set on a view, touching that view and dragging
+     * outside of its bounds will open the popup window. Lifting will select the
+     * currently touched list item.
+     * <p>
+     * Example usage:
+     * <pre>ListPopupWindow myPopup = new ListPopupWindow(context);
+     * myPopup.setAnchor(myAnchor);
+     * OnTouchListener dragListener = myPopup.createDragToOpenListener(myAnchor);
+     * myAnchor.setOnTouchListener(dragListener);</pre>
+     *
+     * @param src the view on which the resulting listener will be set
+     * @return a touch listener that controls drag-to-open behavior
+     */
+    public OnTouchListener createDragToOpenListener(View src) {
+        return new ForwardingListener(src) {
+            @Override
+            public ListPopupWindow getPopup() {
+                return ListPopupWindow.this;
+            }
+        };
+    }
+
+    /**
      * <p>Builds the popup window's content and returns the height the popup
      * should have. Returns -1 when the content already exists.</p>
      *
diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java
index 014306d..941ddfc 100644
--- a/core/java/android/widget/ListView.java
+++ b/core/java/android/widget/ListView.java
@@ -42,6 +42,8 @@
 import android.view.ViewRootImpl;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityNodeInfo;
+import android.view.accessibility.AccessibilityNodeInfo.CollectionInfo;
+import android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo;
 import android.widget.RemoteViews.RemoteView;
 
 import java.util.ArrayList;
@@ -3778,5 +3780,20 @@
     public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
         super.onInitializeAccessibilityNodeInfo(info);
         info.setClassName(ListView.class.getName());
+
+        final int count = getCount();
+        final CollectionInfo collectionInfo = CollectionInfo.obtain(1, count, false);
+        info.setCollectionInfo(collectionInfo);
+    }
+
+    @Override
+    public void onInitializeAccessibilityNodeInfoForItem(
+            View view, int position, AccessibilityNodeInfo info) {
+        super.onInitializeAccessibilityNodeInfoForItem(view, position, info);
+
+        final LayoutParams lp = (LayoutParams) view.getLayoutParams();
+        final boolean isHeading = lp != null && lp.viewType != ITEM_VIEW_TYPE_HEADER_OR_FOOTER;
+        final CollectionItemInfo itemInfo = CollectionItemInfo.obtain(0, 1, position, 1, isHeading);
+        info.setCollectionItemInfo(itemInfo);
     }
 }
diff --git a/core/java/android/widget/PopupMenu.java b/core/java/android/widget/PopupMenu.java
index 6a6d767..e5344c6 100644
--- a/core/java/android/widget/PopupMenu.java
+++ b/core/java/android/widget/PopupMenu.java
@@ -26,6 +26,8 @@
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
+import android.view.View.OnTouchListener;
+import android.widget.ListPopupWindow.ForwardingListener;
 
 /**
  * A PopupMenu displays a {@link Menu} in a modal popup window anchored to a {@link View}.
@@ -40,6 +42,7 @@
     private MenuPopupHelper mPopup;
     private OnMenuItemClickListener mMenuItemClickListener;
     private OnDismissListener mDismissListener;
+    private OnTouchListener mDragListener;
 
     /**
      * Callback interface used to notify the application that the menu has closed.
@@ -71,6 +74,33 @@
     }
 
     /**
+     * Returns an {@link OnTouchListener} that can be added to the anchor view
+     * to implement drag-to-open behavior.
+     * <p>
+     * When the listener is set on a view, touching that view and dragging
+     * outside of its bounds will open the popup window. Lifting will select the
+     * currently touched list item.
+     * <p>
+     * Example usage:
+     * <pre>PopupMenu myPopup = new PopupMenu(context, myAnchor);
+     * myAnchor.setOnTouchListener(myPopup.getDragToOpenListener());</pre>
+     *
+     * @return a touch listener that controls drag-to-open behavior
+     */
+    public OnTouchListener getDragToOpenListener() {
+        if (mDragListener == null) {
+            mDragListener = new ForwardingListener(mAnchor) {
+                @Override
+                public ListPopupWindow getPopup() {
+                    return mPopup.getPopup();
+                }
+            };
+        }
+
+        return mDragListener;
+    }
+
+    /**
      * @return the {@link Menu} associated with this popup. Populate the returned Menu with
      * items before calling {@link #show()}.
      *
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index d5fc21c..a2d48a8 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -4406,6 +4406,7 @@
     public void setError(CharSequence error, Drawable icon) {
         createEditorIfNeeded();
         mEditor.setError(error, icon);
+        notifyViewAccessibilityStateChangedIfNeeded();
     }
 
     @Override
@@ -8147,6 +8148,10 @@
 
         if (mEditor != null) {
             info.setInputType(mEditor.mInputType);
+
+            if (mEditor.mError != null) {
+                info.setContentInvalid(true);
+            }
         }
 
         if (!TextUtils.isEmpty(mText)) {
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java
index aa94728..ab81a37 100644
--- a/core/java/com/android/internal/app/ResolverActivity.java
+++ b/core/java/com/android/internal/app/ResolverActivity.java
@@ -22,11 +22,13 @@
 
 import android.app.ActivityManager;
 import android.app.ActivityManagerNative;
+import android.app.AppGlobals;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.pm.ActivityInfo;
+import android.content.pm.IPackageManager;
 import android.content.pm.LabeledIntent;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
@@ -45,7 +47,6 @@
 import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.Button;
-import android.widget.GridView;
 import android.widget.ImageView;
 import android.widget.ListView;
 import android.widget.TextView;
@@ -71,13 +72,13 @@
     private PackageManager mPm;
     private boolean mAlwaysUseOption;
     private boolean mShowExtended;
-    private GridView mGrid;
+    private ListView mListView;
     private Button mAlwaysButton;
     private Button mOnceButton;
     private int mIconDpi;
     private int mIconSize;
     private int mMaxColumns;
-    private int mLastSelected = GridView.INVALID_POSITION;
+    private int mLastSelected = ListView.INVALID_POSITION;
 
     private boolean mRegistered;
     private final PackageMonitor mPackageMonitor = new PackageMonitor() {
@@ -139,17 +140,15 @@
             finish();
             return;
         } else if (count > 1) {
-            ap.mView = getLayoutInflater().inflate(R.layout.resolver_grid, null);
-            mGrid = (GridView) ap.mView.findViewById(R.id.resolver_grid);
-            mGrid.setAdapter(mAdapter);
-            mGrid.setOnItemClickListener(this);
-            mGrid.setOnItemLongClickListener(new ItemLongClickListener());
+            ap.mView = getLayoutInflater().inflate(R.layout.resolver_list, null);
+            mListView = (ListView) ap.mView.findViewById(R.id.resolver_list);
+            mListView.setAdapter(mAdapter);
+            mListView.setOnItemClickListener(this);
+            mListView.setOnItemLongClickListener(new ItemLongClickListener());
 
             if (alwaysUseOption) {
-                mGrid.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
+                mListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
             }
-
-            resizeGrid();
         } else if (count == 1) {
             startActivity(mAdapter.intentForPosition(0));
             mPackageMonitor.unregister();
@@ -172,11 +171,11 @@
                 mAlwaysUseOption = false;
             }
         }
-    }
-
-    void resizeGrid() {
-        final int itemCount = mAdapter.getCount();
-        mGrid.setNumColumns(Math.min(itemCount, mMaxColumns));
+        final int initialHighlight = mAdapter.getInitialHighlight();
+        if (initialHighlight >= 0) {
+            mListView.setItemChecked(initialHighlight, true);
+            onItemClick(null, null, initialHighlight, 0); // Other entries are not used
+        }
     }
 
     Drawable getIcon(Resources res, int resId) {
@@ -247,26 +246,26 @@
     protected void onRestoreInstanceState(Bundle savedInstanceState) {
         super.onRestoreInstanceState(savedInstanceState);
         if (mAlwaysUseOption) {
-            final int checkedPos = mGrid.getCheckedItemPosition();
-            final boolean enabled = checkedPos != GridView.INVALID_POSITION;
+            final int checkedPos = mListView.getCheckedItemPosition();
+            final boolean enabled = checkedPos != ListView.INVALID_POSITION;
             mLastSelected = checkedPos;
             mAlwaysButton.setEnabled(enabled);
             mOnceButton.setEnabled(enabled);
             if (enabled) {
-                mGrid.setSelection(checkedPos);
+                mListView.setSelection(checkedPos);
             }
         }
     }
 
     @Override
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-        final int checkedPos = mGrid.getCheckedItemPosition();
-        final boolean hasValidSelection = checkedPos != GridView.INVALID_POSITION;
+        final int checkedPos = mListView.getCheckedItemPosition();
+        final boolean hasValidSelection = checkedPos != ListView.INVALID_POSITION;
         if (mAlwaysUseOption && (!hasValidSelection || mLastSelected != checkedPos)) {
             mAlwaysButton.setEnabled(hasValidSelection);
             mOnceButton.setEnabled(hasValidSelection);
             if (hasValidSelection) {
-                mGrid.smoothScrollToPosition(checkedPos);
+                mListView.smoothScrollToPosition(checkedPos);
             }
             mLastSelected = checkedPos;
         } else {
@@ -276,7 +275,7 @@
 
     public void onButtonClick(View v) {
         final int id = v.getId();
-        startSelected(mGrid.getCheckedItemPosition(), id == R.id.button_always);
+        startSelected(mListView.getCheckedItemPosition(), id == R.id.button_always);
         dismiss();
     }
 
@@ -288,94 +287,103 @@
     }
 
     protected void onIntentSelected(ResolveInfo ri, Intent intent, boolean alwaysCheck) {
-        if (alwaysCheck) {
-            // Build a reasonable intent filter, based on what matched.
-            IntentFilter filter = new IntentFilter();
+        // Build a reasonable intent filter, based on what matched.
+        IntentFilter filter = new IntentFilter();
 
-            if (intent.getAction() != null) {
-                filter.addAction(intent.getAction());
+        if (intent.getAction() != null) {
+            filter.addAction(intent.getAction());
+        }
+        Set<String> categories = intent.getCategories();
+        if (categories != null) {
+            for (String cat : categories) {
+                filter.addCategory(cat);
             }
-            Set<String> categories = intent.getCategories();
-            if (categories != null) {
-                for (String cat : categories) {
-                    filter.addCategory(cat);
+        }
+        filter.addCategory(Intent.CATEGORY_DEFAULT);
+
+        int cat = ri.match&IntentFilter.MATCH_CATEGORY_MASK;
+        Uri data = intent.getData();
+        if (cat == IntentFilter.MATCH_CATEGORY_TYPE) {
+            String mimeType = intent.resolveType(this);
+            if (mimeType != null) {
+                try {
+                    filter.addDataType(mimeType);
+                } catch (IntentFilter.MalformedMimeTypeException e) {
+                    Log.w("ResolverActivity", e);
+                    filter = null;
                 }
             }
-            filter.addCategory(Intent.CATEGORY_DEFAULT);
+        }
+        if (data != null && data.getScheme() != null) {
+            // We need the data specification if there was no type,
+            // OR if the scheme is not one of our magical "file:"
+            // or "content:" schemes (see IntentFilter for the reason).
+            if (cat != IntentFilter.MATCH_CATEGORY_TYPE
+                    || (!"file".equals(data.getScheme())
+                            && !"content".equals(data.getScheme()))) {
+                filter.addDataScheme(data.getScheme());
 
-            int cat = ri.match&IntentFilter.MATCH_CATEGORY_MASK;
-            Uri data = intent.getData();
-            if (cat == IntentFilter.MATCH_CATEGORY_TYPE) {
-                String mimeType = intent.resolveType(this);
-                if (mimeType != null) {
-                    try {
-                        filter.addDataType(mimeType);
-                    } catch (IntentFilter.MalformedMimeTypeException e) {
-                        Log.w("ResolverActivity", e);
-                        filter = null;
+                // Look through the resolved filter to determine which part
+                // of it matched the original Intent.
+                Iterator<PatternMatcher> pIt = ri.filter.schemeSpecificPartsIterator();
+                if (pIt != null) {
+                    String ssp = data.getSchemeSpecificPart();
+                    while (ssp != null && pIt.hasNext()) {
+                        PatternMatcher p = pIt.next();
+                        if (p.match(ssp)) {
+                            filter.addDataSchemeSpecificPart(p.getPath(), p.getType());
+                            break;
+                        }
                     }
                 }
-            }
-            if (data != null && data.getScheme() != null) {
-                // We need the data specification if there was no type,
-                // OR if the scheme is not one of our magical "file:"
-                // or "content:" schemes (see IntentFilter for the reason).
-                if (cat != IntentFilter.MATCH_CATEGORY_TYPE
-                        || (!"file".equals(data.getScheme())
-                                && !"content".equals(data.getScheme()))) {
-                    filter.addDataScheme(data.getScheme());
-
-                    // Look through the resolved filter to determine which part
-                    // of it matched the original Intent.
-                    Iterator<PatternMatcher> pIt = ri.filter.schemeSpecificPartsIterator();
-                    if (pIt != null) {
-                        String ssp = data.getSchemeSpecificPart();
-                        while (ssp != null && pIt.hasNext()) {
-                            PatternMatcher p = pIt.next();
-                            if (p.match(ssp)) {
-                                filter.addDataSchemeSpecificPart(p.getPath(), p.getType());
-                                break;
-                            }
+                Iterator<IntentFilter.AuthorityEntry> aIt = ri.filter.authoritiesIterator();
+                if (aIt != null) {
+                    while (aIt.hasNext()) {
+                        IntentFilter.AuthorityEntry a = aIt.next();
+                        if (a.match(data) >= 0) {
+                            int port = a.getPort();
+                            filter.addDataAuthority(a.getHost(),
+                                    port >= 0 ? Integer.toString(port) : null);
+                            break;
                         }
                     }
-                    Iterator<IntentFilter.AuthorityEntry> aIt = ri.filter.authoritiesIterator();
-                    if (aIt != null) {
-                        while (aIt.hasNext()) {
-                            IntentFilter.AuthorityEntry a = aIt.next();
-                            if (a.match(data) >= 0) {
-                                int port = a.getPort();
-                                filter.addDataAuthority(a.getHost(),
-                                        port >= 0 ? Integer.toString(port) : null);
-                                break;
-                            }
-                        }
-                    }
-                    pIt = ri.filter.pathsIterator();
-                    if (pIt != null) {
-                        String path = data.getPath();
-                        while (path != null && pIt.hasNext()) {
-                            PatternMatcher p = pIt.next();
-                            if (p.match(path)) {
-                                filter.addDataPath(p.getPath(), p.getType());
-                                break;
-                            }
+                }
+                pIt = ri.filter.pathsIterator();
+                if (pIt != null) {
+                    String path = data.getPath();
+                    while (path != null && pIt.hasNext()) {
+                        PatternMatcher p = pIt.next();
+                        if (p.match(path)) {
+                            filter.addDataPath(p.getPath(), p.getType());
+                            break;
                         }
                     }
                 }
             }
+        }
 
-            if (filter != null) {
-                final int N = mAdapter.mList.size();
-                ComponentName[] set = new ComponentName[N];
-                int bestMatch = 0;
-                for (int i=0; i<N; i++) {
-                    ResolveInfo r = mAdapter.mList.get(i).ri;
-                    set[i] = new ComponentName(r.activityInfo.packageName,
-                            r.activityInfo.name);
-                    if (r.match > bestMatch) bestMatch = r.match;
-                }
+        if (filter != null) {
+            final int N = mAdapter.mList.size();
+            ComponentName[] set = new ComponentName[N];
+            int bestMatch = 0;
+            for (int i=0; i<N; i++) {
+                ResolveInfo r = mAdapter.mList.get(i).ri;
+                set[i] = new ComponentName(r.activityInfo.packageName,
+                        r.activityInfo.name);
+                if (r.match > bestMatch) bestMatch = r.match;
+            }
+            if (alwaysCheck) {
                 getPackageManager().addPreferredActivity(filter, bestMatch, set,
                         intent.getComponent());
+            } else {
+                try {
+                    AppGlobals.getPackageManager().setLastChosenActivity(intent,
+                            intent.resolveTypeIfNeeded(getContentResolver()),
+                            PackageManager.MATCH_DEFAULT_ONLY,
+                            filter, bestMatch, intent.getComponent());
+                } catch (RemoteException re) {
+                    Log.d(TAG, "Error calling setLastChosenActivity\n" + re);
+                }
             }
         }
 
@@ -410,11 +418,13 @@
     private final class ResolveListAdapter extends BaseAdapter {
         private final Intent[] mInitialIntents;
         private final List<ResolveInfo> mBaseResolveList;
+        private ResolveInfo mLastChosen;
         private final Intent mIntent;
         private final int mLaunchedFromUid;
         private final LayoutInflater mInflater;
 
         private List<DisplayResolveInfo> mList;
+        private int mInitialHighlight = -1;
 
         public ResolveListAdapter(Context context, Intent intent,
                 Intent[] initialIntents, List<ResolveInfo> rList, int launchedFromUid) {
@@ -436,14 +446,24 @@
             if (newItemCount == 0) {
                 // We no longer have any items...  just finish the activity.
                 finish();
-            } else if (newItemCount != oldItemCount) {
-                resizeGrid();
             }
         }
 
+        public int getInitialHighlight() {
+            return mInitialHighlight;
+        }
+
         private void rebuildList() {
             List<ResolveInfo> currentResolveList;
 
+            try {
+                mLastChosen = AppGlobals.getPackageManager().getLastChosenActivity(
+                        mIntent, mIntent.resolveTypeIfNeeded(getContentResolver()),
+                        PackageManager.MATCH_DEFAULT_ONLY);
+            } catch (RemoteException re) {
+                Log.d(TAG, "Error calling setLastChosenActivity\n" + re);
+            }
+
             mList.clear();
             if (mBaseResolveList != null) {
                 currentResolveList = mBaseResolveList;
@@ -556,6 +576,12 @@
             // Process labels from start to i
             int num = end - start+1;
             if (num == 1) {
+                if (mLastChosen != null
+                        && mLastChosen.activityInfo.packageName.equals(
+                                ro.activityInfo.packageName)
+                        && mLastChosen.activityInfo.name.equals(ro.activityInfo.name)) {
+                    mInitialHighlight = mList.size();
+                }
                 // No duplicate labels. Use label for entry at start
                 mList.add(new DisplayResolveInfo(ro, roLabel, null, null));
             } else {
@@ -585,6 +611,12 @@
                 }
                 for (int k = start; k <= end; k++) {
                     ResolveInfo add = rList.get(k);
+                    if (mLastChosen != null
+                            && mLastChosen.activityInfo.packageName.equals(
+                                    add.activityInfo.packageName)
+                            && mLastChosen.activityInfo.name.equals(add.activityInfo.name)) {
+                        mInitialHighlight = mList.size();
+                    }
                     if (usePkg) {
                         // Use application name for all entries from start to end-1
                         mList.add(new DisplayResolveInfo(add, roLabel,
diff --git a/core/java/com/android/internal/widget/AutoScrollHelper.java b/core/java/com/android/internal/widget/AutoScrollHelper.java
index f728e6a..afa4103 100644
--- a/core/java/com/android/internal/widget/AutoScrollHelper.java
+++ b/core/java/com/android/internal/widget/AutoScrollHelper.java
@@ -32,7 +32,8 @@
  * scrolling to Views.
  * <p>
  * <b>Note:</b> Implementing classes are responsible for overriding the
- * {@link #onScrollBy} method to scroll the target view. See
+ * {@link #scrollTargetBy}, {@link #canTargetScrollHorizontally}, and
+ * {@link #canTargetScrollVertically} methods. See
  * {@link AbsListViewAutoScroller} for an {@link android.widget.AbsListView}
  * -specific implementation.
  * <p>
@@ -60,12 +61,14 @@
  * {@link #setMaximumEdges}. Default value is {@link #NO_MAX}.
  * </ul>
  * <h1>Scrolling</h1> When automatic scrolling is active, the helper will
- * repeatedly call {@link #onScrollBy} to apply new scrolling offsets.
+ * repeatedly call {@link #scrollTargetBy} to apply new scrolling offsets.
  * <p>
  * The following scrolling properties may be configured:
  * <ul>
  * <li>Acceleration ramp-up duration, see {@link #setRampUpDuration}. Default
- * value is 2.5 seconds.
+ * value is 2500 milliseconds.
+ * <li>Acceleration ramp-down duration, see {@link #setRampDownDuration}.
+ * Default value is 500 milliseconds.
  * <li>Target velocity relative to view size, see {@link #setRelativeVelocity}.
  * Default value is 100% per second for both vertical and horizontal.
  * <li>Minimum velocity used to constrain relative velocity, see
@@ -163,25 +166,22 @@
     private float[] mMaximumVelocity = new float[] { NO_MAX, NO_MAX };
 
     /** Whether to start activation immediately. */
-    private boolean mSkipDelay;
+    private boolean mAlreadyDelayed;
 
     /** Whether to reset the scroller start time on the next animation. */
-    private boolean mResetScroller;
+    private boolean mNeedsReset;
 
-    /** Whether the auto-scroller is active. */
-    private boolean mActive;
+    /** Whether to send a cancel motion event to the target view. */
+    private boolean mNeedsCancel;
 
-    /** Whether the auto-scroller is scrolling. */
-    private boolean mScrolling;
+    /** Whether the auto-scroller is actively scrolling. */
+    private boolean mAnimating;
 
     /** Whether the auto-scroller is enabled. */
     private boolean mEnabled;
 
     /** Whether the auto-scroller consumes events when scrolling. */
-    private boolean mExclusiveEnabled;
-
-    /** Down time of the most recent down touch event. */
-    private long mDownTime;
+    private boolean mExclusive;
 
     // Default values.
     private static final int DEFAULT_EDGE_TYPE = EDGE_TYPE_INSIDE_EXTEND;
@@ -192,7 +192,7 @@
     private static final float DEFAULT_RELATIVE_VELOCITY = 1f;
     private static final int DEFAULT_ACTIVATION_DELAY = ViewConfiguration.getTapTimeout();
     private static final int DEFAULT_RAMP_UP_DURATION = 2500;
-    // TODO: RAMP_DOWN_DURATION of 500ms?
+    private static final int DEFAULT_RAMP_DOWN_DURATION = 500;
 
     /**
      * Creates a new helper for scrolling the specified target view.
@@ -220,8 +220,7 @@
         setRelativeVelocity(DEFAULT_RELATIVE_VELOCITY, DEFAULT_RELATIVE_VELOCITY);
         setActivationDelay(DEFAULT_ACTIVATION_DELAY);
         setRampUpDuration(DEFAULT_RAMP_UP_DURATION);
-
-        mEnabled = true;
+        setRampDownDuration(DEFAULT_RAMP_DOWN_DURATION);
     }
 
     /**
@@ -232,8 +231,8 @@
      * @return The scroll helper, which may used to chain setter calls.
      */
     public AutoScrollHelper setEnabled(boolean enabled) {
-        if (!enabled) {
-            stop(true);
+        if (mEnabled && !enabled) {
+            requestStop();
         }
 
         mEnabled = enabled;
@@ -255,13 +254,13 @@
      * When enabled, {@link #onTouch} will return true if the helper is
      * currently scrolling and false otherwise.
      *
-     * @param enabled True to exclusively handle touch events during scrolling,
+     * @param exclusive True to exclusively handle touch events during scrolling,
      *            false to allow the target view to receive all touch events.
-     * @see #isExclusiveEnabled()
-     * @see #onTouch(View, MotionEvent)
+     * @return The scroll helper, which may used to chain setter calls.
      */
-    public void setExclusiveEnabled(boolean enabled) {
-        mExclusiveEnabled = enabled;
+    public AutoScrollHelper setExclusive(boolean exclusive) {
+        mExclusive = exclusive;
+        return this;
     }
 
     /**
@@ -270,10 +269,10 @@
      *
      * @return True if exclusive handling of touch events during scrolling is
      *         enabled, false otherwise.
-     * @see #setExclusiveEnabled(boolean)
+     * @see #setExclusive(boolean)
      */
-    public boolean isExclusiveEnabled() {
-        return mExclusiveEnabled;
+    public boolean isExclusive() {
+        return mExclusive;
     }
 
     /**
@@ -424,7 +423,22 @@
      * @return The scroll helper, which may used to chain setter calls.
      */
     public AutoScrollHelper setRampUpDuration(int durationMillis) {
-        mScroller.setDuration(durationMillis);
+        mScroller.setRampUpDuration(durationMillis);
+        return this;
+    }
+
+    /**
+     * Sets the amount of time after de-activation of auto-scrolling that is
+     * takes to slow to a stop.
+     * <p>
+     * Specifying a duration greater than zero prevents sudden jumps in
+     * velocity.
+     *
+     * @param durationMillis The ramp-down duration in milliseconds.
+     * @return The scroll helper, which may used to chain setter calls.
+     */
+    public AutoScrollHelper setRampDownDuration(int durationMillis) {
+        mScroller.setRampDownDuration(durationMillis);
         return this;
     }
 
@@ -432,7 +446,7 @@
      * Handles touch events by activating automatic scrolling, adjusting scroll
      * velocity, or stopping.
      * <p>
-     * If {@link #isExclusiveEnabled()} is false, always returns false so that
+     * If {@link #isExclusive()} is false, always returns false so that
      * the host view may handle touch events. Otherwise, returns true when
      * automatic scrolling is active and false otherwise.
      */
@@ -445,52 +459,135 @@
         final int action = event.getActionMasked();
         switch (action) {
             case MotionEvent.ACTION_DOWN:
-                mDownTime = event.getDownTime();
+                mNeedsCancel = true;
+                mAlreadyDelayed = false;
+                // $FALL-THROUGH$
             case MotionEvent.ACTION_MOVE:
-                final float xValue = getEdgeValue(mRelativeEdges[HORIZONTAL], v.getWidth(),
-                        mMaximumEdges[HORIZONTAL], event.getX());
-                final float yValue = getEdgeValue(mRelativeEdges[VERTICAL], v.getHeight(),
-                        mMaximumEdges[VERTICAL], event.getY());
-                final float maxVelX = constrain(mRelativeVelocity[HORIZONTAL] * mTarget.getWidth(),
-                        mMinimumVelocity[HORIZONTAL], mMaximumVelocity[HORIZONTAL]);
-                final float maxVelY = constrain(mRelativeVelocity[VERTICAL] * mTarget.getHeight(),
-                        mMinimumVelocity[VERTICAL], mMaximumVelocity[VERTICAL]);
-                mScroller.setTargetVelocity(xValue * maxVelX, yValue * maxVelY);
+                final float xTargetVelocity = computeTargetVelocity(
+                        HORIZONTAL, event.getX(), v.getWidth(), mTarget.getWidth());
+                final float yTargetVelocity = computeTargetVelocity(
+                        VERTICAL, event.getY(), v.getHeight(), mTarget.getHeight());
+                mScroller.setTargetVelocity(xTargetVelocity, yTargetVelocity);
 
-                if ((xValue != 0 || yValue != 0) && !mActive) {
-                    mActive = true;
-                    mResetScroller = true;
-                    if (mRunnable == null) {
-                        mRunnable = new AutoScrollRunnable();
-                    }
-                    if (mSkipDelay) {
-                        mTarget.postOnAnimation(mRunnable);
-                    } else {
-                        mSkipDelay = true;
-                        mTarget.postOnAnimationDelayed(mRunnable, mActivationDelay);
-                    }
+                // If the auto scroller was not previously active, but it should
+                // be, then update the state and start animations.
+                if (!mAnimating && shouldAnimate()) {
+                    startAnimating();
                 }
                 break;
             case MotionEvent.ACTION_UP:
             case MotionEvent.ACTION_CANCEL:
-                stop(true);
+                requestStop();
                 break;
         }
 
-        return mExclusiveEnabled && mScrolling;
+        return mExclusive && mAnimating;
     }
 
     /**
-     * Override this method to scroll the target view by the specified number
-     * of pixels.
-     * <p>
-     * Returns whether the target view was able to scroll the requested amount.
-     *
-     * @param deltaX The amount to scroll in the X direction, in pixels.
-     * @param deltaY The amount to scroll in the Y direction, in pixels.
-     * @return true if the target view was able to scroll the requested amount.
+     * @return whether the target is able to scroll in the requested direction
      */
-    public abstract boolean onScrollBy(int deltaX, int deltaY);
+    private boolean shouldAnimate() {
+        final ClampedScroller scroller = mScroller;
+        final int verticalDirection = scroller.getVerticalDirection();
+        final int horizontalDirection = scroller.getHorizontalDirection();
+
+        return verticalDirection != 0 && canTargetScrollVertically(verticalDirection)
+                || horizontalDirection != 0 && canTargetScrollHorizontally(horizontalDirection);
+    }
+
+    /**
+     * Starts the scroll animation.
+     */
+    private void startAnimating() {
+        if (mRunnable == null) {
+            mRunnable = new ScrollAnimationRunnable();
+        }
+
+        mAnimating = true;
+        mNeedsReset = true;
+
+        if (!mAlreadyDelayed && mActivationDelay > 0) {
+            mTarget.postOnAnimationDelayed(mRunnable, mActivationDelay);
+        } else {
+            mRunnable.run();
+        }
+
+        // If we start animating again before the user lifts their finger, we
+        // already know it's not a tap and don't need an activation delay.
+        mAlreadyDelayed = true;
+    }
+
+    /**
+     * Requests that the scroll animation slow to a stop. If there is an
+     * activation delay, this may occur between posting the animation and
+     * actually running it.
+     */
+    private void requestStop() {
+        if (mNeedsReset) {
+            // The animation has been posted, but hasn't run yet. Manually
+            // stopping animation will prevent it from running.
+            mAnimating = false;
+        } else {
+            mScroller.requestStop();
+        }
+    }
+
+    private float computeTargetVelocity(
+            int direction, float coordinate, float srcSize, float dstSize) {
+        final float relativeEdge = mRelativeEdges[direction];
+        final float maximumEdge = mMaximumEdges[direction];
+        final float value = getEdgeValue(relativeEdge, srcSize, maximumEdge, coordinate);
+        if (value == 0) {
+            // The edge in this direction is not activated.
+            return 0;
+        }
+
+        final float relativeVelocity = mRelativeVelocity[direction];
+        final float minimumVelocity = mMinimumVelocity[direction];
+        final float maximumVelocity = mMaximumVelocity[direction];
+        final float targetVelocity = relativeVelocity * dstSize;
+
+        // Target velocity is adjusted for interpolated edge position, then
+        // clamped to the minimum and maximum values. Later, this value will be
+        // adjusted for time-based acceleration.
+        if (value > 0) {
+            return constrain(value * targetVelocity, minimumVelocity, maximumVelocity);
+        } else {
+            return -constrain(-value * targetVelocity, minimumVelocity, maximumVelocity);
+        }
+    }
+
+    /**
+     * Override this method to scroll the target view by the specified number of
+     * pixels.
+     *
+     * @param deltaX The number of pixels to scroll by horizontally.
+     * @param deltaY The number of pixels to scroll by vertically.
+     */
+    public abstract void scrollTargetBy(int deltaX, int deltaY);
+
+    /**
+     * Override this method to return whether the target view can be scrolled
+     * horizontally in a certain direction.
+     *
+     * @param direction Negative to check scrolling left, positive to check
+     *            scrolling right.
+     * @return true if the target view is able to horizontally scroll in the
+     *         specified direction.
+     */
+    public abstract boolean canTargetScrollHorizontally(int direction);
+
+    /**
+     * Override this method to return whether the target view can be scrolled
+     * vertically in a certain direction.
+     *
+     * @param direction Negative to check scrolling up, positive to check
+     *            scrolling down.
+     * @return true if the target view is able to vertically scroll in the
+     *         specified direction.
+     */
+    public abstract boolean canTargetScrollVertically(int direction);
 
     /**
      * Returns the interpolated position of a touch point relative to an edge
@@ -531,10 +628,10 @@
             case EDGE_TYPE_INSIDE:
             case EDGE_TYPE_INSIDE_EXTEND:
                 if (current < leading) {
-                    if (current > 0) {
+                    if (current >= 0) {
                         // Movement up to the edge is scaled.
                         return 1f - current / leading;
-                    } else if (mActive && (mEdgeType == EDGE_TYPE_INSIDE_EXTEND)) {
+                    } else if (mAnimating && (mEdgeType == EDGE_TYPE_INSIDE_EXTEND)) {
                         // Movement beyond the edge is always maximum.
                         return 1f;
                     }
@@ -551,6 +648,16 @@
         return 0;
     }
 
+    private static int constrain(int value, int min, int max) {
+        if (value > max) {
+            return max;
+        } else if (value < min) {
+            return min;
+        } else {
+            return value;
+        }
+    }
+
     private static float constrain(float value, float min, float max) {
         if (value > max) {
             return max;
@@ -562,72 +669,48 @@
     }
 
     /**
-     * Stops auto-scrolling immediately, optionally reseting the auto-scrolling
-     * delay.
-     *
-     * @param reset Whether to reset the auto-scrolling delay.
-     */
-    private void stop(boolean reset) {
-        mActive = false;
-        mScrolling = false;
-        mSkipDelay = !reset;
-
-        if (mRunnable != null) {
-            mTarget.removeCallbacks(mRunnable);
-        }
-    }
-
-    /**
      * Sends a {@link MotionEvent#ACTION_CANCEL} event to the target view,
      * canceling any ongoing touch events.
      */
     private void cancelTargetTouch() {
+        final long eventTime = SystemClock.uptimeMillis();
         final MotionEvent cancel = MotionEvent.obtain(
-                mDownTime, SystemClock.uptimeMillis(), MotionEvent.ACTION_CANCEL, 0, 0, 0);
-        cancel.setAction(MotionEvent.ACTION_CANCEL);
+                eventTime, eventTime, MotionEvent.ACTION_CANCEL, 0, 0, 0);
         mTarget.onTouchEvent(cancel);
         cancel.recycle();
     }
 
-    private class AutoScrollRunnable implements Runnable {
+    private class ScrollAnimationRunnable implements Runnable {
         @Override
         public void run() {
-            if (!mActive) {
+            if (!mAnimating) {
                 return;
             }
 
-            if (mResetScroller) {
-                mResetScroller = false;
+            if (mNeedsReset) {
+                mNeedsReset = false;
                 mScroller.start();
             }
 
-            final View target = mTarget;
             final ClampedScroller scroller = mScroller;
+            if (scroller.isFinished() || !shouldAnimate()) {
+                mAnimating = false;
+                return;
+            }
+
+            if (mNeedsCancel) {
+                mNeedsCancel = false;
+                cancelTargetTouch();
+            }
+
             scroller.computeScrollDelta();
 
             final int deltaX = scroller.getDeltaX();
             final int deltaY = scroller.getDeltaY();
-            if ((deltaX != 0 || deltaY != 0 || !scroller.isFinished())
-                    && onScrollBy(deltaX, deltaY)) {
-                // Update whether we're actively scrolling.
-                final boolean scrolling = (deltaX != 0 || deltaY != 0);
-                if (mScrolling != scrolling) {
-                    mScrolling = scrolling;
+            scrollTargetBy(deltaX,  deltaY);
 
-                    // If we just started actively scrolling, make sure any down
-                    // or move events send to the target view are canceled.
-                    if (mExclusiveEnabled && scrolling) {
-                        cancelTargetTouch();
-                    }
-                }
-
-                // Keep going until the scroller has permanently stopped or the
-                // view can't scroll any more. If the user moves their finger
-                // again, we'll repost the animation.
-                target.postOnAnimation(this);
-            } else {
-                stop(false);
-            }
+            // Keep going until the scroller has permanently stopped.
+            mTarget.postOnAnimation(this);
         }
     }
 
@@ -637,27 +720,39 @@
      * interpolated 1f value after a specified duration.
      */
     private static class ClampedScroller {
-        private final Interpolator mInterpolator = new AccelerateInterpolator();
-
-        private int mDuration;
+        private int mRampUpDuration;
+        private int mRampDownDuration;
         private float mTargetVelocityX;
         private float mTargetVelocityY;
 
         private long mStartTime;
+
         private long mDeltaTime;
         private int mDeltaX;
         private int mDeltaY;
 
+        private long mStopTime;
+        private float mStopValue;
+        private int mEffectiveRampDown;
+
         /**
          * Creates a new ramp-up scroller that reaches full velocity after a
          * specified duration.
          */
         public ClampedScroller() {
-            reset();
+            mStartTime = Long.MIN_VALUE;
+            mStopTime = -1;
+            mDeltaTime = 0;
+            mDeltaX = 0;
+            mDeltaY = 0;
         }
 
-        public void setDuration(int durationMillis) {
-            mDuration = durationMillis;
+        public void setRampUpDuration(int durationMillis) {
+            mRampUpDuration = durationMillis;
+        }
+
+        public void setRampDownDuration(int durationMillis) {
+            mRampDownDuration = durationMillis;
         }
 
         /**
@@ -665,35 +760,53 @@
          */
         public void start() {
             mStartTime = AnimationUtils.currentAnimationTimeMillis();
+            mStopTime = -1;
             mDeltaTime = mStartTime;
-        }
-
-        /**
-         * Returns whether the scroller is finished, which means that its
-         * acceleration is zero.
-         *
-         * @return Whether the scroller is finished.
-         */
-        public boolean isFinished() {
-            if (mTargetVelocityX == 0 && mTargetVelocityY == 0) {
-                return true;
-            }
-            final long currentTime = AnimationUtils.currentAnimationTimeMillis();
-            final long elapsedSinceStart = currentTime - mStartTime;
-            return elapsedSinceStart > mDuration;
-        }
-
-        /**
-         * Stops the scroller and resets its values.
-         */
-        public void reset() {
-            mStartTime = -1;
-            mDeltaTime = -1;
+            mStopValue = 0.5f;
             mDeltaX = 0;
             mDeltaY = 0;
         }
 
         /**
+         * Stops the scroller at the current animation time.
+         */
+        public void requestStop() {
+            final long currentTime = AnimationUtils.currentAnimationTimeMillis();
+            mEffectiveRampDown = constrain((int) (currentTime - mStartTime), 0, mRampDownDuration);
+            mStopValue = getValueAt(currentTime);
+            mStopTime = currentTime;
+        }
+
+        public boolean isFinished() {
+            return mStopTime > 0
+                    && AnimationUtils.currentAnimationTimeMillis() > mStopTime + mEffectiveRampDown;
+        }
+
+        private float getValueAt(long currentTime) {
+            if (currentTime < mStartTime) {
+                return 0f;
+            } else if (mStopTime < 0 || currentTime < mStopTime) {
+                final long elapsedSinceStart = currentTime - mStartTime;
+                return 0.5f * constrain(elapsedSinceStart / (float) mRampUpDuration, 0, 1);
+            } else {
+                final long elapsedSinceEnd = currentTime - mStopTime;
+                return (1 - mStopValue) + mStopValue
+                        * constrain(elapsedSinceEnd / (float) mEffectiveRampDown, 0, 1);
+            }
+        }
+
+        /**
+         * Interpolates the value along a parabolic curve corresponding to the equation
+         * <code>y = -4x * (x-1)</code>.
+         *
+         * @param value The value to interpolate, between 0 and 1.
+         * @return the interpolated value, between 0 and 1.
+         */
+        private float interpolateValue(float value) {
+            return -4 * value * value + 4 * value;
+        }
+
+        /**
          * Computes the current scroll deltas. This usually only be called after
          * starting the scroller with {@link #start()}.
          *
@@ -701,18 +814,13 @@
          * @see #getDeltaY()
          */
         public void computeScrollDelta() {
-            final long currentTime = AnimationUtils.currentAnimationTimeMillis();
-            final long elapsedSinceStart = currentTime - mStartTime;
-            final float value;
-            if (mStartTime < 0) {
-                value = 0f;
-            } else if (elapsedSinceStart < mDuration) {
-                value = (float) elapsedSinceStart / mDuration;
-            } else {
-                value = 1f;
+            if (mDeltaTime == 0) {
+                throw new RuntimeException("Cannot compute scroll delta before calling start()");
             }
 
-            final float scale = mInterpolator.getInterpolation(value);
+            final long currentTime = AnimationUtils.currentAnimationTimeMillis();
+            final float value = getValueAt(currentTime);
+            final float scale = interpolateValue(value);
             final long elapsedSinceDelta = currentTime - mDeltaTime;
 
             mDeltaTime = currentTime;
@@ -731,6 +839,14 @@
             mTargetVelocityY = y;
         }
 
+        public int getHorizontalDirection() {
+            return (int) (mTargetVelocityX / Math.abs(mTargetVelocityX));
+        }
+
+        public int getVerticalDirection() {
+            return (int) (mTargetVelocityY / Math.abs(mTargetVelocityY));
+        }
+
         /**
          * The distance traveled in the X-coordinate computed by the last call
          * to {@link #computeScrollDelta()}.
@@ -749,20 +865,60 @@
     }
 
     /**
-     * Implementation of {@link AutoScrollHelper} that knows how to scroll
-     * generic {@link AbsListView}s.
+     * An implementation of {@link AutoScrollHelper} that knows how to scroll
+     * through an {@link AbsListView}.
      */
     public static class AbsListViewAutoScroller extends AutoScrollHelper {
         private final AbsListView mTarget;
 
         public AbsListViewAutoScroller(AbsListView target) {
             super(target);
+
             mTarget = target;
         }
 
         @Override
-        public boolean onScrollBy(int deltaX, int deltaY) {
-            return mTarget.scrollListBy(deltaY);
+        public void scrollTargetBy(int deltaX, int deltaY) {
+            mTarget.scrollListBy(deltaY);
+        }
+
+        @Override
+        public boolean canTargetScrollHorizontally(int direction) {
+            // List do not scroll horizontally.
+            return false;
+        }
+
+        @Override
+        public boolean canTargetScrollVertically(int direction) {
+            final AbsListView target = mTarget;
+            final int itemCount = target.getCount();
+            final int childCount = target.getChildCount();
+            final int firstPosition = target.getFirstVisiblePosition();
+            final int lastPosition = firstPosition + childCount;
+
+            if (direction > 0) {
+                // Are we already showing the entire last item?
+                if (lastPosition >= itemCount) {
+                    final View lastView = target.getChildAt(childCount - 1);
+                    if (lastView.getBottom() <= target.getHeight()) {
+                        return false;
+                    }
+                }
+            } else if (direction < 0) {
+                // Are we already showing the entire first item?
+                if (firstPosition <= 0) {
+                    final View firstView = target.getChildAt(0);
+                    if (firstView.getTop() >= 0) {
+                        return false;
+                    }
+                }
+            } else {
+                // The behavior for direction 0 is undefined and we can return
+                // whatever we want.
+                return false;
+            }
+
+            return true;
         }
     }
 }
diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp
index fd9fbae..eea9ee1 100644
--- a/core/jni/android/graphics/Bitmap.cpp
+++ b/core/jni/android/graphics/Bitmap.cpp
@@ -5,6 +5,7 @@
 #include "GraphicsJNI.h"

 #include "SkDither.h"

 #include "SkUnPreMultiply.h"

+#include "SkStream.h"

 

 #include <binder/Parcel.h>

 #include "android_os_Parcel.h"

diff --git a/core/jni/android/graphics/BitmapFactory.cpp b/core/jni/android/graphics/BitmapFactory.cpp
index c433874..16beb02 100644
--- a/core/jni/android/graphics/BitmapFactory.cpp
+++ b/core/jni/android/graphics/BitmapFactory.cpp
@@ -202,7 +202,7 @@
 // since we "may" create a purgeable imageref, we require the stream be ref'able
 // i.e. dynamically allocated, since its lifetime may exceed the current stack
 // frame.
-static jobject doDecode(JNIEnv* env, SkStream* stream, jobject padding,
+static jobject doDecode(JNIEnv* env, SkStreamRewindable* stream, jobject padding,
         jobject options, bool allowPurgeable, bool forcePurgeable = false) {
 
     int sampleSize = 1;
@@ -459,26 +459,17 @@
         jobject padding, jobject options) {
 
     jobject bitmap = NULL;
-    SkStream* stream = CreateJavaInputStreamAdaptor(env, is, storage, 0);
+    SkAutoTUnref<SkStreamRewindable> stream(GetRewindableStream(env, is, storage));
 
-    if (stream) {
+    if (stream.get()) {
         // for now we don't allow purgeable with java inputstreams
+        // FIXME: GetRewindableStream may have made a copy, in which case
+        // purgeable should be allowed.
         bitmap = doDecode(env, stream, padding, options, false, false);
-        stream->unref();
     }
     return bitmap;
 }
 
-static ssize_t getFDSize(int fd) {
-    off64_t curr = ::lseek64(fd, 0, SEEK_CUR);
-    if (curr < 0) {
-        return 0;
-    }
-    size_t size = ::lseek(fd, 0, SEEK_END);
-    ::lseek64(fd, curr, SEEK_SET);
-    return size;
-}
-
 static jobject nativeDecodeFileDescriptor(JNIEnv* env, jobject clazz, jobject fileDescriptor,
         jobject padding, jobject bitmapFactoryOptions) {
 
@@ -512,44 +503,16 @@
     return doDecode(env, stream, padding, bitmapFactoryOptions, weOwnTheFD);
 }
 
-/*  make a deep copy of the asset, and return it as a stream, or NULL if there
-    was an error.
- */
-static SkStream* copyAssetToStream(Asset* asset) {
-    // if we could "ref/reopen" the asset, we may not need to copy it here
-    off64_t size = asset->seek(0, SEEK_SET);
-    if ((off64_t)-1 == size) {
-        SkDebugf("---- copyAsset: asset rewind failed\n");
-        return NULL;
-    }
-
-    size = asset->getLength();
-    if (size <= 0) {
-        SkDebugf("---- copyAsset: asset->getLength() returned %d\n", size);
-        return NULL;
-    }
-
-    SkStream* stream = new SkMemoryStream(size);
-    void* data = const_cast<void*>(stream->getMemoryBase());
-    off64_t len = asset->read(data, size);
-    if (len != size) {
-        SkDebugf("---- copyAsset: asset->read(%d) returned %d\n", size, len);
-        delete stream;
-        stream = NULL;
-    }
-    return stream;
-}
-
 static jobject nativeDecodeAsset(JNIEnv* env, jobject clazz, jint native_asset,
         jobject padding, jobject options) {
 
-    SkStream* stream;
+    SkStreamRewindable* stream;
     Asset* asset = reinterpret_cast<Asset*>(native_asset);
     bool forcePurgeable = optionsPurgeable(env, options);
     if (forcePurgeable) {
         // if we could "ref/reopen" the asset, we may not need to copy it here
         // and we could assume optionsShareable, since assets are always RO
-        stream = copyAssetToStream(asset);
+        stream = CopyAssetToStream(asset);
         if (stream == NULL) {
             return NULL;
         }
@@ -559,7 +522,7 @@
         stream = new AssetStreamAdaptor(asset);
     }
     SkAutoUnref aur(stream);
-    return doDecode(env, stream, padding, options, true, forcePurgeable);
+    return doDecode(env, stream, padding, options, forcePurgeable, forcePurgeable);
 }
 
 static jobject nativeDecodeByteArray(JNIEnv* env, jobject, jbyteArray byteArray,
@@ -572,7 +535,7 @@
      */
     bool purgeable = optionsPurgeable(env, options) && !optionsJustBounds(env, options);
     AutoJavaByteArray ar(env, byteArray);
-    SkStream* stream = new SkMemoryStream(ar.ptr() + offset, length, purgeable);
+    SkMemoryStream* stream = new SkMemoryStream(ar.ptr() + offset, length, purgeable);
     SkAutoUnref aur(stream);
     return doDecode(env, stream, NULL, options, purgeable);
 }
diff --git a/core/jni/android/graphics/BitmapRegionDecoder.cpp b/core/jni/android/graphics/BitmapRegionDecoder.cpp
index 8867a11..6646579 100644
--- a/core/jni/android/graphics/BitmapRegionDecoder.cpp
+++ b/core/jni/android/graphics/BitmapRegionDecoder.cpp
@@ -76,27 +76,6 @@
     int fHeight;
 };
 
-static SkMemoryStream* buildSkMemoryStream(SkStream *stream) {
-    size_t bufferSize = 4096;
-    size_t streamLen = 0;
-    size_t len;
-    char* data = (char*)sk_malloc_throw(bufferSize);
-
-    while ((len = stream->read(data + streamLen,
-                    bufferSize - streamLen)) != 0) {
-        streamLen += len;
-        if (streamLen == bufferSize) {
-            bufferSize *= 2;
-            data = (char*)sk_realloc_throw(data, bufferSize);
-        }
-    }
-    data = (char*)sk_realloc_throw(data, streamLen);
-
-    SkMemoryStream* streamMem = new SkMemoryStream();
-    streamMem->setMemoryOwned(data, streamLen);
-    return streamMem;
-}
-
 static jobject createBitmapRegionDecoder(JNIEnv* env, SkStream* stream) {
     SkImageDecoder* decoder = SkImageDecoder::Factory(stream);
     int width, height;
@@ -161,14 +140,12 @@
                                   jbyteArray storage, // byte[]
                                   jboolean isShareable) {
     jobject brd = NULL;
-    SkStream* stream = CreateJavaInputStreamAdaptor(env, is, storage, 1024);
+    // for now we don't allow shareable with java inputstreams
+    SkStream* stream = CopyJavaInputStream(env, is, storage);
 
     if (stream) {
-        // for now we don't allow shareable with java inputstreams
-        SkMemoryStream* mStream = buildSkMemoryStream(stream);
-        brd = createBitmapRegionDecoder(env, mStream);
-        SkSafeUnref(mStream); // the decoder now holds a reference
-        stream->unref();
+        brd = createBitmapRegionDecoder(env, stream);
+        stream->unref(); // the decoder now holds a reference
     }
     return brd;
 }
@@ -176,14 +153,14 @@
 static jobject nativeNewInstanceFromAsset(JNIEnv* env, jobject clazz,
                                  jint native_asset, // Asset
                                  jboolean isShareable) {
-    SkStream* stream, *assStream;
     Asset* asset = reinterpret_cast<Asset*>(native_asset);
-    assStream = new AssetStreamAdaptor(asset);
-    stream = buildSkMemoryStream(assStream);
-    assStream->unref();
+    SkAutoTUnref<SkMemoryStream> stream(CopyAssetToStream(asset));
+    if (NULL == stream.get()) {
+        return NULL;
+    }
 
-    jobject brd = createBitmapRegionDecoder(env, stream);
-    SkSafeUnref(stream); // the decoder now holds a reference
+    jobject brd = createBitmapRegionDecoder(env, stream.get());
+    // The decoder now holds a reference to stream.
     return brd;
 }
 
diff --git a/core/jni/android/graphics/CreateJavaOutputStreamAdaptor.cpp b/core/jni/android/graphics/CreateJavaOutputStreamAdaptor.cpp
index aa4cbde..797d155 100644
--- a/core/jni/android/graphics/CreateJavaOutputStreamAdaptor.cpp
+++ b/core/jni/android/graphics/CreateJavaOutputStreamAdaptor.cpp
@@ -1,28 +1,83 @@
 #include "CreateJavaOutputStreamAdaptor.h"
+#include "JNIHelp.h"
+#include "SkData.h"
+#include "SkRefCnt.h"
+#include "SkStream.h"
+#include "SkTypes.h"
+#include "Utils.h"
+#include <androidfw/Asset.h>
 
 #define RETURN_NULL_IF_NULL(value) \
     do { if (!(value)) { SkASSERT(0); return NULL; } } while (false)
 
+#define RETURN_ZERO_IF_NULL(value) \
+    do { if (!(value)) { SkASSERT(0); return 0; } } while (false)
+
 static jmethodID    gInputStream_resetMethodID;
 static jmethodID    gInputStream_markMethodID;
-static jmethodID    gInputStream_availableMethodID;
+static jmethodID    gInputStream_markSupportedMethodID;
 static jmethodID    gInputStream_readMethodID;
 static jmethodID    gInputStream_skipMethodID;
 
+class RewindableJavaStream;
+
+/**
+ *  Non-rewindable wrapper for a Java InputStream.
+ */
 class JavaInputStreamAdaptor : public SkStream {
 public:
     JavaInputStreamAdaptor(JNIEnv* env, jobject js, jbyteArray ar)
         : fEnv(env), fJavaInputStream(js), fJavaByteArray(ar) {
         SkASSERT(ar);
-        fCapacity   = env->GetArrayLength(ar);
+        fCapacity = env->GetArrayLength(ar);
         SkASSERT(fCapacity > 0);
-        fBytesRead  = 0;
+        fBytesRead = 0;
+        fIsAtEnd = false;
     }
 
-	virtual bool rewind() {
+    virtual size_t read(void* buffer, size_t size) {
+        JNIEnv* env = fEnv;
+        if (NULL == buffer) {
+            if (0 == size) {
+                return 0;
+            } else {
+                /*  InputStream.skip(n) can return <=0 but still not be at EOF
+                    If we see that value, we need to call read(), which will
+                    block if waiting for more data, or return -1 at EOF
+                 */
+                size_t amountSkipped = 0;
+                do {
+                    size_t amount = this->doSkip(size - amountSkipped);
+                    if (0 == amount) {
+                        char tmp;
+                        amount = this->doRead(&tmp, 1);
+                        if (0 == amount) {
+                            // if read returned 0, we're at EOF
+                            fIsAtEnd = true;
+                            break;
+                        }
+                    }
+                    amountSkipped += amount;
+                } while (amountSkipped < size);
+                return amountSkipped;
+            }
+        }
+        return this->doRead(buffer, size);
+    }
+
+    virtual bool isAtEnd() const {
+        return fIsAtEnd;
+    }
+
+private:
+    // Does not override rewind, since a JavaInputStreamAdaptor's interface
+    // does not support rewinding. RewindableJavaStream, which is a friend,
+    // will be able to call this method to rewind.
+    bool doRewind() {
         JNIEnv* env = fEnv;
 
         fBytesRead = 0;
+        fIsAtEnd = false;
 
         env->CallVoidMethod(fJavaInputStream, gInputStream_resetMethodID);
         if (env->ExceptionCheck()) {
@@ -53,6 +108,7 @@
             }
 
             if (n < 0) { // n == 0 should not be possible, see InputStream read() specifications.
+                fIsAtEnd = true;
                 break;  // eof
             }
 
@@ -92,58 +148,19 @@
         return (size_t)skipped;
     }
 
-    size_t doSize() {
-        JNIEnv* env = fEnv;
-        jint avail = env->CallIntMethod(fJavaInputStream,
-                                        gInputStream_availableMethodID);
-        if (env->ExceptionCheck()) {
-            env->ExceptionDescribe();
-            env->ExceptionClear();
-            SkDebugf("------- available threw an exception\n");
-            avail = 0;
-        }
-        return avail;
-    }
-
-	virtual size_t read(void* buffer, size_t size) {
-        JNIEnv* env = fEnv;
-        if (NULL == buffer) {
-            if (0 == size) {
-                return this->doSize();
-            } else {
-                /*  InputStream.skip(n) can return <=0 but still not be at EOF
-                    If we see that value, we need to call read(), which will
-                    block if waiting for more data, or return -1 at EOF
-                 */
-                size_t amountSkipped = 0;
-                do {
-                    size_t amount = this->doSkip(size - amountSkipped);
-                    if (0 == amount) {
-                        char tmp;
-                        amount = this->doRead(&tmp, 1);
-                        if (0 == amount) {
-                            // if read returned 0, we're at EOF
-                            break;
-                        }
-                    }
-                    amountSkipped += amount;
-                } while (amountSkipped < size);
-                return amountSkipped;
-            }
-        }
-        return this->doRead(buffer, size);
-    }
-
-private:
     JNIEnv*     fEnv;
     jobject     fJavaInputStream;   // the caller owns this object
     jbyteArray  fJavaByteArray;     // the caller owns this object
     size_t      fCapacity;
     size_t      fBytesRead;
+    bool        fIsAtEnd;
+
+    // Allows access to doRewind and fBytesRead.
+    friend class RewindableJavaStream;
 };
 
-SkStream* CreateJavaInputStreamAdaptor(JNIEnv* env, jobject stream,
-                                       jbyteArray storage, int markSize) {
+SkStream* WrapJavaInputStream(JNIEnv* env, jobject stream,
+                              jbyteArray storage) {
     static bool gInited;
 
     if (!gInited) {
@@ -154,8 +171,8 @@
                                                            "reset", "()V");
         gInputStream_markMethodID       = env->GetMethodID(inputStream_Clazz,
                                                            "mark", "(I)V");
-        gInputStream_availableMethodID  = env->GetMethodID(inputStream_Clazz,
-                                                           "available", "()I");
+        gInputStream_markSupportedMethodID = env->GetMethodID(inputStream_Clazz,
+                                                              "markSupported", "()Z");
         gInputStream_readMethodID       = env->GetMethodID(inputStream_Clazz,
                                                            "read", "([BII)I");
         gInputStream_skipMethodID       = env->GetMethodID(inputStream_Clazz,
@@ -163,18 +180,167 @@
 
         RETURN_NULL_IF_NULL(gInputStream_resetMethodID);
         RETURN_NULL_IF_NULL(gInputStream_markMethodID);
-        RETURN_NULL_IF_NULL(gInputStream_availableMethodID);
+        RETURN_NULL_IF_NULL(gInputStream_markSupportedMethodID);
         RETURN_NULL_IF_NULL(gInputStream_readMethodID);
         RETURN_NULL_IF_NULL(gInputStream_skipMethodID);
 
         gInited = true;
     }
 
-    if (markSize) {
-        env->CallVoidMethod(stream, gInputStream_markMethodID, markSize);
+    return new JavaInputStreamAdaptor(env, stream, storage);
+}
+
+static SkMemoryStream* adaptor_to_mem_stream(SkStream* adaptor) {
+    SkASSERT(adaptor != NULL);
+    SkDynamicMemoryWStream wStream;
+    const int bufferSize = 256 * 1024; // 256 KB, same as ViewStateSerializer.
+    uint8_t buffer[bufferSize];
+    do {
+        size_t bytesRead = adaptor->read(buffer, bufferSize);
+        wStream.write(buffer, bytesRead);
+    } while (!adaptor->isAtEnd());
+    SkAutoTUnref<SkData> data(wStream.copyToData());
+    return new SkMemoryStream(data.get());
+}
+
+SkMemoryStream* CopyJavaInputStream(JNIEnv* env, jobject stream,
+                                    jbyteArray storage) {
+    SkAutoTUnref<SkStream> adaptor(WrapJavaInputStream(env, stream, storage));
+    if (NULL == adaptor.get()) {
+        return NULL;
+    }
+    return adaptor_to_mem_stream(adaptor.get());
+}
+
+/**
+ *  Wrapper for a Java InputStream which is rewindable and
+ *  has a length.
+ */
+class RewindableJavaStream : public SkStreamRewindable {
+public:
+    // RewindableJavaStream takes ownership of adaptor.
+    RewindableJavaStream(JavaInputStreamAdaptor* adaptor, size_t length)
+        : fAdaptor(adaptor)
+        , fLength(length) {
+        SkASSERT(fAdaptor != NULL);
     }
 
-    return new JavaInputStreamAdaptor(env, stream, storage);
+    virtual ~RewindableJavaStream() {
+        fAdaptor->unref();
+    }
+
+    virtual bool rewind() {
+        return fAdaptor->doRewind();
+    }
+
+    virtual size_t read(void* buffer, size_t size) {
+        return fAdaptor->read(buffer, size);
+    }
+
+    virtual bool isAtEnd() const {
+        return fAdaptor->isAtEnd();
+    }
+
+    virtual size_t getLength() const {
+        return fLength;
+    }
+
+    virtual bool hasLength() const {
+        return true;
+    }
+
+    virtual SkStreamRewindable* duplicate() const {
+        // Duplicating this stream requires rewinding and
+        // reading, which modify this Stream (and could
+        // fail, leaving this one invalid).
+        SkASSERT(false);
+        return NULL;
+    }
+
+private:
+    JavaInputStreamAdaptor* fAdaptor;
+    const size_t            fLength;
+};
+
+/**
+ *  If jstream is a ByteArrayInputStream, return its remaining length. Otherwise
+ *  return 0.
+ */
+static size_t get_length_from_byte_array_stream(JNIEnv* env, jobject jstream) {
+    static jclass byteArrayInputStream_Clazz;
+    static jfieldID countField;
+    static jfieldID posField;
+
+    byteArrayInputStream_Clazz = env->FindClass("java/io/ByteArrayInputStream");
+    RETURN_ZERO_IF_NULL(byteArrayInputStream_Clazz);
+
+    countField = env->GetFieldID(byteArrayInputStream_Clazz, "count", "I");
+    RETURN_ZERO_IF_NULL(byteArrayInputStream_Clazz);
+    posField = env->GetFieldID(byteArrayInputStream_Clazz, "pos", "I");
+    RETURN_ZERO_IF_NULL(byteArrayInputStream_Clazz);
+
+    if (env->IsInstanceOf(jstream, byteArrayInputStream_Clazz)) {
+        // Return the remaining length, to keep the same behavior of using the rest of the
+        // stream.
+        return env->GetIntField(jstream, countField) - env->GetIntField(jstream, posField);
+    }
+    return 0;
+}
+
+/**
+ *  If jstream is a class that has a length, return it. Otherwise
+ *  return 0.
+ *  Only checks for a set of subclasses.
+ */
+static size_t get_length_if_supported(JNIEnv* env, jobject jstream) {
+    size_t len = get_length_from_byte_array_stream(env, jstream);
+    if (len > 0) {
+        return len;
+    }
+    return 0;
+}
+
+SkStreamRewindable* GetRewindableStream(JNIEnv* env, jobject stream,
+                                        jbyteArray storage) {
+    SkAutoTUnref<SkStream> adaptor(WrapJavaInputStream(env, stream, storage));
+    if (NULL == adaptor.get()) {
+        return NULL;
+    }
+
+    const size_t length = get_length_if_supported(env, stream);
+    if (length > 0 && env->CallBooleanMethod(stream, gInputStream_markSupportedMethodID)) {
+        // Set the readLimit for mark to the end of the stream, so it can
+        // be rewound regardless of how much has been read.
+        env->CallVoidMethod(stream, gInputStream_markMethodID, length);
+        // RewindableJavaStream will unref adaptor when it is destroyed.
+        return new RewindableJavaStream(static_cast<JavaInputStreamAdaptor*>(adaptor.detach()),
+                                        length);
+    }
+
+    return adaptor_to_mem_stream(adaptor.get());
+}
+
+android::AssetStreamAdaptor* CheckForAssetStream(JNIEnv* env, jobject jstream) {
+    static jclass assetInputStream_Clazz;
+    static jmethodID getAssetIntMethodID;
+
+    assetInputStream_Clazz = env->FindClass("android/content/res/AssetManager$AssetInputStream");
+    RETURN_NULL_IF_NULL(assetInputStream_Clazz);
+
+    getAssetIntMethodID = env->GetMethodID(assetInputStream_Clazz, "getAssetInt", "()I");
+    RETURN_NULL_IF_NULL(getAssetIntMethodID);
+
+    if (!env->IsInstanceOf(jstream, assetInputStream_Clazz)) {
+        return NULL;
+    }
+
+    jint jasset = env->CallIntMethod(jstream, getAssetIntMethodID);
+    android::Asset* a = reinterpret_cast<android::Asset*>(jasset);
+    if (NULL == a) {
+        jniThrowNullPointerException(env, "NULL native asset");
+        return NULL;
+    }
+    return new android::AssetStreamAdaptor(a);
 }
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/core/jni/android/graphics/CreateJavaOutputStreamAdaptor.h b/core/jni/android/graphics/CreateJavaOutputStreamAdaptor.h
index c34c96a..5218dc5 100644
--- a/core/jni/android/graphics/CreateJavaOutputStreamAdaptor.h
+++ b/core/jni/android/graphics/CreateJavaOutputStreamAdaptor.h
@@ -3,10 +3,70 @@
 
 //#include <android_runtime/AndroidRuntime.h>
 #include "jni.h"
-#include "SkStream.h"
 
-SkStream* CreateJavaInputStreamAdaptor(JNIEnv* env, jobject stream,
-                                       jbyteArray storage, int markSize = 0);
+namespace android {
+    class AssetStreamAdaptor;
+}
+
+class SkMemoryStream;
+class SkStream;
+class SkStreamRewindable;
+class SkWStream;
+
+/**
+ *  Return an adaptor from a Java InputStream to an SkStream.
+ *  @param env JNIEnv object.
+ *  @param stream Pointer to Java InputStream.
+ *  @param storage Java byte array for retrieving data from the
+ *      Java InputStream.
+ *  @return SkStream Simple subclass of SkStream which supports its
+ *      basic methods like reading. Only valid until the calling
+ *      function returns, since the Java InputStream is not managed
+ *      by the SkStream.
+ */
+SkStream* WrapJavaInputStream(JNIEnv* env, jobject stream,
+                              jbyteArray storage);
+
+/**
+ *  Copy a Java InputStream.
+ *  @param env JNIEnv object.
+ *  @param stream Pointer to Java InputStream.
+ *  @param storage Java byte array for retrieving data from the
+ *      Java InputStream.
+ *  @return SkMemoryStream The data in stream will be copied to a new
+ *      SkMemoryStream.
+ *  FIXME: Could return a more generic return type if ViewStateSerializer
+ *  did not require an SkMemoryStream.
+ */
+SkMemoryStream* CopyJavaInputStream(JNIEnv* env, jobject stream,
+                                    jbyteArray storage);
+
+/**
+ *  Get a rewindable stream from a Java InputStream.
+ *  @param env JNIEnv object.
+ *  @param stream Pointer to Java InputStream.
+ *  @param storage Java byte array for retrieving data from the
+ *      Java InputStream.
+ *  @return SkStreamRewindable Either a wrapper around the Java
+ *      InputStream, if possible, or a copy which is rewindable.
+ *      Since it may be a wrapper, must not be used after the
+ *      caller returns, like the result of WrapJavaInputStream.
+ */
+SkStreamRewindable* GetRewindableStream(JNIEnv* env, jobject stream,
+                                        jbyteArray storage);
+
+/**
+ *  If the Java InputStream is an AssetInputStream, return an adaptor.
+ *  This should not be used after the calling function returns, since
+ *  the caller may close the asset. Returns NULL if the stream is
+ *  not an AssetInputStream.
+ *  @param env JNIEnv object.
+ *  @param stream Pointer to Java InputStream.
+ *  @return AssetStreamAdaptor representing the InputStream, or NULL.
+ *      Must not be held onto.
+ */
+android::AssetStreamAdaptor* CheckForAssetStream(JNIEnv* env, jobject stream);
+
 SkWStream* CreateJavaOutputStreamAdaptor(JNIEnv* env, jobject stream,
                                          jbyteArray storage);
 
diff --git a/core/jni/android/graphics/Movie.cpp b/core/jni/android/graphics/Movie.cpp
index 4f64ff8..2eae841 100644
--- a/core/jni/android/graphics/Movie.cpp
+++ b/core/jni/android/graphics/Movie.cpp
@@ -1,8 +1,10 @@
+#include "ScopedLocalRef.h"
 #include "SkMovie.h"
 #include "SkStream.h"
 #include "GraphicsJNI.h"
 #include "SkTemplates.h"
 #include "SkUtils.h"
+#include "Utils.h"
 #include "CreateJavaOutputStreamAdaptor.h"
 
 #include <androidfw/Asset.h>
@@ -83,9 +85,14 @@
 
     NPE_CHECK_RETURN_ZERO(env, istream);
 
-    // what is the lifetime of the array? Can the skstream hold onto it?
-    jbyteArray byteArray = env->NewByteArray(16*1024);
-    SkStream* strm = CreateJavaInputStreamAdaptor(env, istream, byteArray);
+    SkStreamRewindable* strm = CheckForAssetStream(env, istream);
+    jbyteArray byteArray = NULL;
+    ScopedLocalRef<jbyteArray> scoper(env, NULL);
+    if (NULL == strm) {
+        byteArray = env->NewByteArray(16*1024);
+        scoper.reset(byteArray);
+        strm = GetRewindableStream(env, istream, byteArray);
+    }
     if (NULL == strm) {
         return 0;
     }
diff --git a/core/jni/android/graphics/Picture.cpp b/core/jni/android/graphics/Picture.cpp
index 9c02219..dff2b18 100644
--- a/core/jni/android/graphics/Picture.cpp
+++ b/core/jni/android/graphics/Picture.cpp
@@ -20,6 +20,7 @@
 
 #include "SkCanvas.h"
 #include "SkPicture.h"
+#include "SkStream.h"
 #include "SkTemplates.h"
 #include "CreateJavaOutputStreamAdaptor.h"
 
@@ -38,10 +39,9 @@
     static SkPicture* deserialize(JNIEnv* env, jobject, jobject jstream,
                                   jbyteArray jstorage) {
         SkPicture* picture = NULL;
-        SkStream* strm = CreateJavaInputStreamAdaptor(env, jstream, jstorage);
-        if (strm) {
-            picture = SkPicture::CreateFromStream(strm);
-            delete strm;
+        SkAutoTUnref<SkStream> strm(WrapJavaInputStream(env, jstream, jstorage));
+        if (strm.get()) {
+            picture = SkPicture::CreateFromStream(strm.get());
         }
         return picture;
     }
diff --git a/core/jni/android/graphics/Utils.cpp b/core/jni/android/graphics/Utils.cpp
index cf6977e..b7d1f3a 100644
--- a/core/jni/android/graphics/Utils.cpp
+++ b/core/jni/android/graphics/Utils.cpp
@@ -28,12 +28,28 @@
     return true;
 }
 
+size_t AssetStreamAdaptor::getLength() const {
+    return fAsset->getLength();
+}
+
+bool AssetStreamAdaptor::isAtEnd() const {
+    return fAsset->getRemainingLength() == 0;
+}
+
+SkStreamRewindable* AssetStreamAdaptor::duplicate() const {
+    SkASSERT(false);
+    // Cannot create a duplicate, since each AssetStreamAdaptor
+    // would be modifying the Asset.
+    //return new AssetStreamAdaptor(fAsset);
+    return NULL;
+}
+
 size_t AssetStreamAdaptor::read(void* buffer, size_t size) {
     ssize_t amount;
 
     if (NULL == buffer) {
-        if (0 == size) {  // caller is asking us for our total length
-            return fAsset->getLength();
+        if (0 == size) {
+            return 0;
         }
         // asset->seek returns new total offset
         // we want to return amount that was skipped
@@ -62,6 +78,34 @@
     return amount;
 }
 
+SkMemoryStream* android::CopyAssetToStream(Asset* asset) {
+    if (NULL == asset) {
+        return NULL;
+    }
+
+    off64_t size = asset->seek(0, SEEK_SET);
+    if ((off64_t)-1 == size) {
+        SkDebugf("---- copyAsset: asset rewind failed\n");
+        return NULL;
+    }
+
+    size = asset->getLength();
+    if (size <= 0) {
+        SkDebugf("---- copyAsset: asset->getLength() returned %d\n", size);
+        return NULL;
+    }
+
+    SkMemoryStream* stream = new SkMemoryStream(size);
+    void* data = const_cast<void*>(stream->getMemoryBase());
+    off64_t len = asset->read(data, size);
+    if (len != size) {
+        SkDebugf("---- copyAsset: asset->read(%d) returned %d\n", size, len);
+        delete stream;
+        stream = NULL;
+    }
+    return stream;
+}
+
 jobject android::nullObjectReturn(const char msg[]) {
     if (msg) {
         SkDebugf("--- %s\n", msg);
diff --git a/core/jni/android/graphics/Utils.h b/core/jni/android/graphics/Utils.h
index 75ceaa2..a1ac72a 100644
--- a/core/jni/android/graphics/Utils.h
+++ b/core/jni/android/graphics/Utils.h
@@ -26,16 +26,27 @@
 
 namespace android {
 
-class AssetStreamAdaptor : public SkStream {
+class AssetStreamAdaptor : public SkStreamRewindable {
 public:
     AssetStreamAdaptor(Asset* a) : fAsset(a) {}
     virtual bool rewind();
     virtual size_t read(void* buffer, size_t size);
+    virtual bool hasLength() const { return true; }
+    virtual size_t getLength() const;
+    virtual bool isAtEnd() const;
 
+    virtual SkStreamRewindable* duplicate() const;
 private:
     Asset*  fAsset;
 };
 
+/**
+ *  Make a deep copy of the asset, and return it as a stream, or NULL if there
+ *  was an error.
+ *  FIXME: If we could "ref/reopen" the asset, we may not need to copy it here.
+ */
+
+SkMemoryStream* CopyAssetToStream(Asset*);
 
 /** Restore the file descriptor's offset in our destructor
  */
diff --git a/core/jni/com_google_android_gles_jni_EGLImpl.cpp b/core/jni/com_google_android_gles_jni_EGLImpl.cpp
index a3ce2a5..50b3302 100644
--- a/core/jni/com_google_android_gles_jni_EGLImpl.cpp
+++ b/core/jni/com_google_android_gles_jni_EGLImpl.cpp
@@ -351,9 +351,9 @@
                 "Make sure the SurfaceTexture is valid");
         return 0;
     }
-    
+
     sp<IGraphicBufferProducer> producer(SurfaceTexture_getProducer(_env, native_window));
-    window = new Surface(producer);
+    window = new Surface(producer, true);
     if (window == NULL)
         goto not_valid_surface;
 
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index faf6e63..9613df3 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -207,6 +207,7 @@
     <protected-broadcast android:name="android.intent.action.DREAMING_STARTED" />
     <protected-broadcast android:name="android.intent.action.DREAMING_STOPPED" />
     <protected-broadcast android:name="android.intent.action.ANY_DATA_STATE" />
+    <protected-broadcast android:name="android.intent.action.DATA_CONNECTION_CONNECTED_TO_PROVISIONING_APN" />
 
     <protected-broadcast android:name="com.android.server.WifiManager.action.START_SCAN" />
     <protected-broadcast android:name="com.android.server.WifiManager.action.DELAYED_DRIVER_STOP" />
@@ -249,6 +250,9 @@
     <protected-broadcast android:name="android.location.GPS_FIX_CHANGE" />
     <protected-broadcast android:name="android.net.proxy.PAC_REFRESH" />
 
+    <protected-broadcast
+        android:name="com.android.server.connectivityservice.CONNECTED_TO_PROVISIONING_NETWORK_ACTION" />
+
     <!-- ====================================== -->
     <!-- Permissions for things that cost money -->
     <!-- ====================================== -->
@@ -1915,13 +1919,10 @@
         android:description="@string/permdesc_bindNfcService"
         android:protectionLevel="signature" />
 
-    <!-- Allows an application to call APIs that give it access to all print jobs
-         on the device. Usually an app can access only the print jobts it created.
-         This permission is not available to third party applications.
-         @hide -->
-    <permission android:name="android.permission.ACCESS_ALL_PRINT_JOBS"
-        android:label="@string/permlab_accessAllPrintJobs"
-        android:description="@string/permdesc_accessAllPrintJobs"
+    <!-- Must be required by the PrintSpooler to ensure that only the system can bind to it. -->
+    <permission android:name="android.permission.BIND_PRINT_SPOOLER_SERVICE"
+        android:label="@string/permlab_bindPrintSpoolerService"
+        android:description="@string/permdesc_bindPrintSpoolerService"
         android:protectionLevel="signature" />
 
     <!-- Must be required by a TextService (e.g. SpellCheckerService)
diff --git a/core/res/res/layout/resolve_list_item.xml b/core/res/res/layout/resolve_list_item.xml
index 61cecae..28c5b74 100644
--- a/core/res/res/layout/resolve_list_item.xml
+++ b/core/res/res/layout/resolve_list_item.xml
@@ -18,40 +18,40 @@
 */
 -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:gravity="center"
-              android:orientation="vertical"
+              android:orientation="horizontal"
               android:layout_height="wrap_content"
               android:layout_width="match_parent"
-              android:background="@android:drawable/activity_picker_bg"
-              android:padding="16dp">
-
-    <!-- Extended activity info to distinguish between duplicate activity names -->
-    <TextView android:id="@android:id/text2"
-              android:textAppearance="?android:attr/textAppearance"
-              android:layout_width="wrap_content"
-              android:layout_height="wrap_content"
-              android:gravity="center"
-              android:minLines="2"
-              android:maxLines="2"
-              android:paddingStart="4dip"
-              android:paddingEnd="4dip" />
+              android:background="@android:drawable/activity_picker_bg">
 
     <!-- Activity icon when presenting dialog
          Size will be filled in by ResolverActivity -->
     <ImageView android:id="@+id/icon"
                android:layout_width="0dp"
                android:layout_height="0dp"
+               android:layout_marginStart="12dp"
+               android:padding="4dp"
                android:scaleType="fitCenter" />
 
-    <!-- Activity name -->
-    <TextView android:id="@android:id/text1"
-              android:textAppearance="?android:attr/textAppearanceSmall"
-              android:layout_width="wrap_content"
+    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:gravity="start|center_vertical"
+              android:orientation="vertical"
               android:layout_height="wrap_content"
-              android:gravity="center"
-              android:minLines="2"
-              android:maxLines="2"
-              android:paddingStart="4dip"
-              android:paddingEnd="4dip" />
+              android:layout_width="wrap_content"
+              android:layout_gravity="start|center_vertical"
+              android:layout_marginStart="12dp">
+        <!-- Activity name -->
+        <TextView android:id="@android:id/text1"
+                  android:textAppearance="?android:attr/textAppearanceMedium"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:maxLines="2" />
+        <!-- Extended activity info to distinguish between duplicate activity names -->
+        <TextView android:id="@android:id/text2"
+                  android:textAppearance="?android:attr/textAppearanceSmall"
+                  android:layout_width="wrap_content"
+                  android:layout_height="wrap_content"
+                  android:maxLines="2"
+                  android:paddingTop="4dip" />
+    </LinearLayout>
 </LinearLayout>
 
diff --git a/core/res/res/layout/resolver_grid.xml b/core/res/res/layout/resolver_list.xml
similarity index 88%
rename from core/res/res/layout/resolver_grid.xml
rename to core/res/res/layout/resolver_list.xml
index d271c1a..f88ced1 100644
--- a/core/res/res/layout/resolver_grid.xml
+++ b/core/res/res/layout/resolver_list.xml
@@ -23,20 +23,18 @@
               android:divider="?android:attr/dividerHorizontal"
               android:showDividers="middle"
               android:dividerPadding="0dip">
+
     <FrameLayout android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:layout_weight="1">
-        <GridView
-            android:layout_gravity="center"
-            android:layout_width="wrap_content"
+
+        <ListView
+            android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:id="@+id/resolver_grid"
-            android:numColumns="4"
-            android:columnWidth="128dp"
-            android:padding="16dp"
-            android:clipToPadding="false"
-            android:scrollbarStyle="outsideOverlay" />
+            android:id="@+id/resolver_list" />
+
     </FrameLayout>
+
     <LinearLayout
         android:id="@+id/button_bar"
         android:visibility="gone"
diff --git a/core/res/res/values-az-rAZ/strings.xml b/core/res/res/values-az-rAZ/strings.xml
new file mode 100644
index 0000000..0ae4dda
--- /dev/null
+++ b/core/res/res/values-az-rAZ/strings.xml
@@ -0,0 +1,1584 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="byteShort" msgid="8340973892742019101">"B"</string>
+    <string name="kilobyteShort" msgid="5973789783504771878">"KB"</string>
+    <string name="megabyteShort" msgid="6355851576770428922">"MB"</string>
+    <string name="gigabyteShort" msgid="3259882455212193214">"GB"</string>
+    <string name="terabyteShort" msgid="231613018159186962">"TB"</string>
+    <string name="petabyteShort" msgid="5637816680144990219">"PB"</string>
+    <string name="fileSizeSuffix" msgid="9164292791500531949">"<xliff:g id="NUMBER">%1$s</xliff:g><xliff:g id="UNIT">%2$s</xliff:g>"</string>
+    <string name="untitled" msgid="4638956954852782576">"Başlıqsız"</string>
+    <string name="ellipsis" msgid="7899829516048813237">"..."</string>
+    <string name="ellipsis_two_dots" msgid="1228078994866030736">"‥"</string>
+    <string name="emptyPhoneNumber" msgid="7694063042079676517">"(Telefon nömrəsi yoxdur)"</string>
+    <string name="unknownName" msgid="2277556546742746522">"(Naməlum)"</string>
+    <string name="defaultVoiceMailAlphaTag" msgid="2660020990097733077">"Səsli poçt"</string>
+    <string name="defaultMsisdnAlphaTag" msgid="2850889754919584674">"MSISDN1"</string>
+    <string name="mmiError" msgid="5154499457739052907">"Bağlantı problemi və ya yalnış MM kodu."</string>
+    <string name="mmiFdnError" msgid="5224398216385316471">"Əməliyyat yalnız sabit nömrələrə yığımla məhdudlaşıb."</string>
+    <string name="serviceEnabled" msgid="8147278346414714315">"Servis işə salındı."</string>
+    <string name="serviceEnabledFor" msgid="6856228140453471041">"Xidmət aktiv edilmişdir:"</string>
+    <string name="serviceDisabled" msgid="1937553226592516411">"Xidmət deaktiv edilib."</string>
+    <string name="serviceRegistered" msgid="6275019082598102493">"Qeydiyyat uğurlu oldu."</string>
+    <string name="serviceErased" msgid="1288584695297200972">"Silinmə uğurlu olmuşdur."</string>
+    <string name="passwordIncorrect" msgid="7612208839450128715">"Yanlış parol"</string>
+    <string name="mmiComplete" msgid="8232527495411698359">"MMI tamamdır."</string>
+    <string name="badPin" msgid="9015277645546710014">"Daxil etdiyiniz köhnə PİN düzgün deyil."</string>
+    <string name="badPuk" msgid="5487257647081132201">"Daxil etdiyiniz PUK düzgün deyil."</string>
+    <string name="mismatchPin" msgid="609379054496863419">"Daxil etdiyiniz PİN kodlar uyğun gəlmir."</string>
+    <string name="invalidPin" msgid="3850018445187475377">"4-dən 8-ə qədər rəqəmi olan PIN yazın."</string>
+    <string name="invalidPuk" msgid="8761456210898036513">"8 və daha çox rəqəmi olan PUK yazın."</string>
+    <string name="needPuk" msgid="919668385956251611">"Sizin SİM kart PUK ilə kilidlənib. Onu açmaq üçün PUK kodu yazın."</string>
+    <string name="needPuk2" msgid="4526033371987193070">"SIM kartın kilidini açmaq üçün PUK2 yazın"</string>
+    <string name="imei" msgid="2625429890869005782">"IMEI"</string>
+    <string name="meid" msgid="4841221237681254195">"MEID"</string>
+    <string name="ClipMmi" msgid="6952821216480289285">"Daxil olan zəng edənin ID\'si"</string>
+    <string name="ClirMmi" msgid="7784673673446833091">"Gedən Zəng ID"</string>
+    <string name="CfMmi" msgid="5123218989141573515">"Zəng yönləndirmə"</string>
+    <string name="CwMmi" msgid="9129678056795016867">"Zəng gözləyir"</string>
+    <string name="BaMmi" msgid="455193067926770581">"Zəng qadağası"</string>
+    <string name="PwdMmi" msgid="7043715687905254199">"Parolu dəyiş"</string>
+    <string name="PinMmi" msgid="3113117780361190304">"PİN dəyişmək"</string>
+    <string name="CnipMmi" msgid="3110534680557857162">"Hazırdakı nömrəyə zəng edilir"</string>
+    <string name="CnirMmi" msgid="3062102121430548731">"Zənglərin sayı məhdudlaşdırılıb"</string>
+    <string name="ThreeWCMmi" msgid="9051047170321190368">"Üç yollu zəng"</string>
+    <string name="RuacMmi" msgid="7827887459138308886">"Xoşagəlməz zənglərdən imtina"</string>
+    <string name="CndMmi" msgid="3116446237081575808">"Çatdırılma zəngi"</string>
+    <string name="DndMmi" msgid="1265478932418334331">"Narahat etməyin"</string>
+    <string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"Adətən zəng edənin ID\'si məhdudlaşdırılır. Növbəti zəng: Məhdudlaşdırılıb"</string>
+    <string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"Adətən zəng edənin ID\'si məhdudlaşdırılır. Növbəti zəng: Məhdudlaşdırılmayıb"</string>
+    <string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"Adətən zəng edənin ID\'si məhdudlaşdırılmır. Növbəti zəng: Məhdudlaşdırılıb"</string>
+    <string name="CLIRDefaultOffNextCallOff" msgid="2567998633124408552">"Adətən zəng edənin ID\'si məhdudlaşdırılmır. Növbəti zəng: Məhdudlaşdırılmayıb"</string>
+    <string name="serviceNotProvisioned" msgid="8614830180508686666">"Xidmət təmin edilməyib."</string>
+    <string name="CLIRPermanent" msgid="3377371145926835671">"Siz zəng edənin ID nizamlarını dəyişə bilməzsiz."</string>
+    <string name="RestrictedChangedTitle" msgid="5592189398956187498">"Məhdudlaşdırılmış keçid dəyişdi"</string>
+    <string name="RestrictedOnData" msgid="8653794784690065540">"Data xidmət bağlıdır."</string>
+    <string name="RestrictedOnEmergency" msgid="6581163779072833665">"Təcili xidmət bağlıdır."</string>
+    <string name="RestrictedOnNormal" msgid="4953867011389750673">"Səs xidməti bağlıdır."</string>
+    <string name="RestrictedOnAllVoice" msgid="3396963652108151260">"Bütün Səs xidmətləri bağlıdır"</string>
+    <string name="RestrictedOnSms" msgid="8314352327461638897">"SMS xidməti bloklanıb."</string>
+    <string name="RestrictedOnVoiceData" msgid="996636487106171320">"Səs/data xidmətləri bloklanıb."</string>
+    <string name="RestrictedOnVoiceSms" msgid="1888588152792023873">"Səs/SMS xidmətləri bloklanıb."</string>
+    <string name="RestrictedOnAll" msgid="5643028264466092821">"Bütün səs/data/SMS xidmətləri bağlıdır."</string>
+    <string name="serviceClassVoice" msgid="1258393812335258019">"Səs"</string>
+    <string name="serviceClassData" msgid="872456782077937893">"Məlumat"</string>
+    <string name="serviceClassFAX" msgid="5566624998840486475">"FAKS"</string>
+    <string name="serviceClassSMS" msgid="2015460373701527489">"SMS"</string>
+    <string name="serviceClassDataAsync" msgid="4523454783498551468">"Async"</string>
+    <string name="serviceClassDataSync" msgid="7530000519646054776">"Sinx"</string>
+    <string name="serviceClassPacket" msgid="6991006557993423453">"Paket"</string>
+    <string name="serviceClassPAD" msgid="3235259085648271037">"PAD"</string>
+    <string name="roamingText0" msgid="7170335472198694945">"Rominq göstəricisi işləkdir"</string>
+    <string name="roamingText1" msgid="5314861519752538922">"Rominq göstəricisi işlək deyil"</string>
+    <string name="roamingText2" msgid="8969929049081268115">"Rominq göstəricisi yanır"</string>
+    <string name="roamingText3" msgid="5148255027043943317">"Qonşuluqdan Kənar"</string>
+    <string name="roamingText4" msgid="8808456682550796530">"Binadan kənar"</string>
+    <string name="roamingText5" msgid="7604063252850354350">"Rominq - Arzuolunan sistem"</string>
+    <string name="roamingText6" msgid="2059440825782871513">"Rominq - Mümkün sistem"</string>
+    <string name="roamingText7" msgid="7112078724097233605">"Rominq - Alyans partnyoru"</string>
+    <string name="roamingText8" msgid="5989569778604089291">"Rominq - Premium partnyor"</string>
+    <string name="roamingText9" msgid="7969296811355152491">"Rouminq - Tam Xidmət Funksionallığı"</string>
+    <string name="roamingText10" msgid="3992906999815316417">"Rouminq - Qismən Xidmət Funksionallığı"</string>
+    <string name="roamingText11" msgid="4154476854426920970">"Rouminq Banneri Açıqdır"</string>
+    <string name="roamingText12" msgid="1189071119992726320">"Roaming Banner Off"</string>
+    <string name="roamingTextSearching" msgid="8360141885972279963">"Xidmət axtarılır"</string>
+    <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Yönləndirilmədi"</string>
+    <string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
+    <string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> <xliff:g id="TIME_DELAY">{2}</xliff:g> saniyə sonra"</string>
+    <string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Yönləndirilmədi"</string>
+    <string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: Yönləndirilmədi"</string>
+    <string name="fcComplete" msgid="3118848230966886575">"Özəllik kodu tamamlandı."</string>
+    <string name="fcError" msgid="3327560126588500777">"Əlaqə problemi və ya yanlış funksiya kodu."</string>
+    <string name="httpErrorOk" msgid="1191919378083472204">"OK"</string>
+    <string name="httpError" msgid="7956392511146698522">"Şəbəkə xətası var idi."</string>
+    <string name="httpErrorLookup" msgid="4711687456111963163">"URL tapıla bilmədi."</string>
+    <string name="httpErrorUnsupportedAuthScheme" msgid="6299980280442076799">"Sayt autentifikasiya sxemi dəstəklənmir."</string>
+    <string name="httpErrorAuth" msgid="1435065629438044534">"Təsdiq edilə bilmədi."</string>
+    <string name="httpErrorProxyAuth" msgid="1788207010559081331">"Proksi server vasitəsilə təsdiqlənmə uğursuz oldu."</string>
+    <string name="httpErrorConnect" msgid="8714273236364640549">"Serverə qoşula bilmədi."</string>
+    <string name="httpErrorIO" msgid="2340558197489302188">"Serverlə əlaqə alınmadı. Sonra cəhd edin."</string>
+    <string name="httpErrorTimeout" msgid="4743403703762883954">"Server ilə olan əlaqə zaman aşımına məruz qaldı."</string>
+    <string name="httpErrorRedirectLoop" msgid="8679596090392779516">"Bu səhifədə həddindən çox server yönləndirilmələri var."</string>
+    <string name="httpErrorUnsupportedScheme" msgid="5015730812906192208">"Protokol dəstəklənmir."</string>
+    <string name="httpErrorFailedSslHandshake" msgid="96549606000658641">"Güvənli bağlantı yaradıla bilmədi."</string>
+    <string name="httpErrorBadUrl" msgid="3636929722728881972">"URL yanlış olduğu üçün səhifəni açmaq mümkün olmadı."</string>
+    <string name="httpErrorFile" msgid="2170788515052558676">"Fayla giriş baş tutmadı."</string>
+    <string name="httpErrorFileNotFound" msgid="6203856612042655084">"Tələb olunan fayl tapılmadı."</string>
+    <string name="httpErrorTooManyRequests" msgid="1235396927087188253">"Həddindən çox sorğu işlənilir. Daha sonra yoxlayın."</string>
+    <string name="notification_title" msgid="8967710025036163822">"<xliff:g id="ACCOUNT">%1$s</xliff:g> üçün giriş xətası"</string>
+    <string name="contentServiceSync" msgid="8353523060269335667">"Sinxronlaşdırma"</string>
+    <string name="contentServiceSyncNotificationTitle" msgid="397743349191901458">"Sinxronlaşdırma"</string>
+    <string name="contentServiceTooManyDeletesNotificationDesc" msgid="8100981435080696431">"Həddindən çox <xliff:g id="CONTENT_TYPE">%s</xliff:g> silinmələri var."</string>
+    <string name="low_memory" product="tablet" msgid="6494019234102154896">"Planşetin yaddaşı doludur. Boş yer üçün bəzi faylları silin."</string>
+    <string name="low_memory" product="default" msgid="3475999286680000541">"Telefonun yaddaşı doludur. Boş yer üçün bəzi faylları silin."</string>
+    <string name="me" msgid="6545696007631404292">"Mən"</string>
+    <string name="power_dialog" product="tablet" msgid="8545351420865202853">"Planşet seçimləri"</string>
+    <string name="power_dialog" product="default" msgid="1319919075463988638">"Telefon seçimləri"</string>
+    <string name="silent_mode" msgid="7167703389802618663">"Səssiz rejim"</string>
+    <string name="turn_on_radio" msgid="3912793092339962371">"Simsizi işə salın"</string>
+    <string name="turn_off_radio" msgid="8198784949987062346">"Simsiz rabitəni söndürün"</string>
+    <string name="screen_lock" msgid="799094655496098153">"Ekran kilidi"</string>
+    <string name="power_off" msgid="4266614107412865048">"Söndür"</string>
+    <string name="silent_mode_silent" msgid="319298163018473078">"Zəng deaktivdir"</string>
+    <string name="silent_mode_vibrate" msgid="7072043388581551395">"Zəng vibrasiyadadır"</string>
+    <string name="silent_mode_ring" msgid="8592241816194074353">"Zəngvuran açıqdır"</string>
+    <string name="shutdown_progress" msgid="2281079257329981203">"Söndürülür..."</string>
+    <string name="shutdown_confirm" product="tablet" msgid="3385745179555731470">"Planşetiniz sönəcək."</string>
+    <string name="shutdown_confirm" product="default" msgid="649792175242821353">"Telefonunuz sönəcək."</string>
+    <string name="shutdown_confirm_question" msgid="2906544768881136183">"Söndürmək istəyirsiz?"</string>
+    <string name="reboot_safemode_title" msgid="7054509914500140361">"Təhlükəsiz rejimdə yenidən başlayın"</string>
+    <string name="reboot_safemode_confirm" msgid="55293944502784668">"Təhlükəsiz rejimdə yenidən başlamaq istəyirsiniz mi? Bu, quraşdırdığınız bütün üçüncü tərəf tətbiqlərini deaktiv edəcək."</string>
+    <string name="recent_tasks_title" msgid="3691764623638127888">"Son"</string>
+    <string name="no_recent_tasks" msgid="8794906658732193473">"Heç bir son tətbiq yoxdur."</string>
+    <string name="global_actions" product="tablet" msgid="408477140088053665">"Planşet seçimləri"</string>
+    <string name="global_actions" product="default" msgid="2406416831541615258">"Telefon seçimləri"</string>
+    <string name="global_action_lock" msgid="2844945191792119712">"Ekran kilidi"</string>
+    <string name="global_action_power_off" msgid="4471879440839879722">"Söndür"</string>
+    <string name="global_action_bug_report" msgid="7934010578922304799">"Baq hesabatı"</string>
+    <string name="bugreport_title" msgid="2667494803742548533">"Baqı xəbər verin"</string>
+    <string name="bugreport_message" msgid="398447048750350456">"Bu, sizin hazırkı cihaz durumu haqqında məlumat toplayacaq ki, elektron məktub şəklində göndərsin. Baq raportuna başlamaq üçün bir az vaxt lazım ola bilər, bir az səbr edin."</string>
+    <string name="global_action_toggle_silent_mode" msgid="8219525344246810925">"Səssiz rejim"</string>
+    <string name="global_action_silent_mode_on_status" msgid="3289841937003758806">"Səs qapalıdır"</string>
+    <string name="global_action_silent_mode_off_status" msgid="1506046579177066419">"Səs Aktivdir"</string>
+    <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Təyyarə rejimi"</string>
+    <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Uçuş rejimi açıqdır"</string>
+    <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Təyyarə rejimi qapalıdır"</string>
+    <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string>
+    <string name="safeMode" msgid="2788228061547930246">"Təhlükəsiz rejim"</string>
+    <string name="android_system_label" msgid="6577375335728551336">"Android sistemi"</string>
+    <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Ödənişli xidmətlər"</string>
+    <string name="permgroupdesc_costMoney" msgid="3293301903409869495">"Xərc tutulacaq əməliyyatlar edir"</string>
+    <string name="permgrouplab_messages" msgid="7521249148445456662">"Sizin mesajlarınız"</string>
+    <string name="permgroupdesc_messages" msgid="7821999071003699236">"SMS, elektron poçt və digər mesajları oxuyur və yazır."</string>
+    <string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Şəxsi məlumatınız"</string>
+    <string name="permgroupdesc_personalInfo" msgid="8426453129788861338">"Kontakt kartınızda saxlanılan məlumatlarınıza birbaşa giriş."</string>
+    <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Sosial məlumatınız"</string>
+    <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Kontaktlarınız və sosial əlaqələriniz haqqında məlumata birbaşa giriş."</string>
+    <string name="permgrouplab_location" msgid="635149742436692049">"Yerləşməniz"</string>
+    <string name="permgroupdesc_location" msgid="5704679763124170100">"Fiziki adresinizi monitorinq edir."</string>
+    <string name="permgrouplab_network" msgid="5808983377727109831">"Şəbəkə kommunikasiyası"</string>
+    <string name="permgroupdesc_network" msgid="4478299413241861987">"Müxtəlif şəbəkə xüsusiyyətlərinə daxil ol."</string>
+    <string name="permgrouplab_bluetoothNetwork" msgid="1585403544162128109">"Bluetooth"</string>
+    <string name="permgroupdesc_bluetoothNetwork" msgid="5625288577164282391">"Bluetooth üzərindən cihazlara və şəbəkələrə daxil ol."</string>
+    <string name="permgrouplab_audioSettings" msgid="8329261670151871235">"Audio Ayarlar"</string>
+    <string name="permgroupdesc_audioSettings" msgid="2641515403347568130">"Audio ayarları dəyişin."</string>
+    <string name="permgrouplab_affectsBattery" msgid="6209246653424798033">"Batareyaya təsir edir"</string>
+    <string name="permgroupdesc_affectsBattery" msgid="6441275320638916947">"Batareyanızın tez qurtarmasına səbəb olan funksiyalar istifadə edir"</string>
+    <string name="permgrouplab_calendar" msgid="5863508437783683902">"Təqvim"</string>
+    <string name="permgroupdesc_calendar" msgid="5777534316982184416">"Təqvimə və tədbirlərə birbaşa giriş."</string>
+    <string name="permgrouplab_dictionary" msgid="4148597128843641379">"İstifadəçi Lüğətini Oxu"</string>
+    <string name="permgroupdesc_dictionary" msgid="7921166355964764490">"İstifadəçi lüğətindəki sözləri oxuyur."</string>
+    <string name="permgrouplab_writeDictionary" msgid="8090237702432576788">"İstifadəçi Lüğətini Yaz"</string>
+    <string name="permgroupdesc_writeDictionary" msgid="2711561994497361646">"İstifadəçi lüğətinə sözlər əlavə edin."</string>
+    <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Əlfəcinlər və Tarixçə"</string>
+    <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Əlfəcinlərə və brauzer tarixinə birbaşa icazə."</string>
+    <string name="permgrouplab_deviceAlarms" msgid="6117704629728824101">"Zəng"</string>
+    <string name="permgroupdesc_deviceAlarms" msgid="4769356362251641175">"Alarm qur."</string>
+    <string name="permgrouplab_voicemail" msgid="4162237145027592133">"Səsli poçt"</string>
+    <string name="permgroupdesc_voicemail" msgid="2498403969862951393">"Səs poçtuna birbaşa çıxış."</string>
+    <string name="permgrouplab_microphone" msgid="171539900250043464">"Mikrofon"</string>
+    <string name="permgroupdesc_microphone" msgid="7106618286905738408">"Audio yazmaq üçün mikrofona birbaşa giriş."</string>
+    <string name="permgrouplab_camera" msgid="4820372495894586615">"Kamera"</string>
+    <string name="permgroupdesc_camera" msgid="2933667372289567714">"Şəkil və ya video çəkmək üçün kameraya birbaşa çıxış."</string>
+    <string name="permgrouplab_screenlock" msgid="8275500173330718168">"Ekran kilidi"</string>
+    <string name="permgroupdesc_screenlock" msgid="7067497128925499401">"Cihazınızdakı kilid ekranının hərəkətinə təsir etmə bacarığı"</string>
+    <string name="permgrouplab_appInfo" msgid="8028789762634147725">"Tətbiq məlumatlarınız"</string>
+    <string name="permgroupdesc_appInfo" msgid="3950378538049625907">"Cihazınızdakı digər tətbiqlərin davranışına təsir etmək bacarığı."</string>
+    <string name="permgrouplab_wallpaper" msgid="3850280158041175998">"Divar kağızı"</string>
+    <string name="permgroupdesc_wallpaper" msgid="5630417854750540154">"Cihazın divar kağızı ayarlarını dəyişin."</string>
+    <string name="permgrouplab_systemClock" msgid="406535759236612992">"Saat"</string>
+    <string name="permgroupdesc_systemClock" msgid="3944359833624094992">"Cihazın vaxt və zaman zolağını dəyişir."</string>
+    <string name="permgrouplab_statusBar" msgid="2095862568113945398">"Status paneli"</string>
+    <string name="permgroupdesc_statusBar" msgid="6242593432226807171">"Cihazın status paneli ayarlarınızı dəyişir."</string>
+    <string name="permgrouplab_syncSettings" msgid="3341990986147826541">"Sinx Ayarları"</string>
+    <string name="permgroupdesc_syncSettings" msgid="7603195265129031797">"Sinxronizasiya nizamlarına çıxış."</string>
+    <string name="permgrouplab_accounts" msgid="3359646291125325519">"Hesablarınız"</string>
+    <string name="permgroupdesc_accounts" msgid="4948732641827091312">"Əlçatımlı hesablara daxil olun."</string>
+    <string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Hardware kontrolları"</string>
+    <string name="permgroupdesc_hardwareControls" msgid="4357057861225462702">"Dəstəkdəki avadanlığa birbaşa giriş."</string>
+    <string name="permgrouplab_phoneCalls" msgid="9067173988325865923">"Telefon zəngləri"</string>
+    <string name="permgroupdesc_phoneCalls" msgid="7489701620446183770">"Telefon zənglərinə nəzarət edin, qeydə alın və idarə edin."</string>
+    <string name="permgrouplab_systemTools" msgid="4652191644082714048">"Sistem alətləri"</string>
+    <string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Aşağı səviyyəli çıxış və sistem idarəetməsi."</string>
+    <string name="permgrouplab_developmentTools" msgid="3446164584710596513">"İnkişaf alətləri"</string>
+    <string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Özəlliklər yalnız tətbiq developerləri üçün lazımdır."</string>
+    <string name="permgrouplab_display" msgid="4279909676036402636">"Digər tətbiq İstifadəçi İnterfeysi"</string>
+    <string name="permgroupdesc_display" msgid="6051002031933013714">"Digər tətbiqlərin İstifadəçi İnterfeysinə təsir edir."</string>
+    <string name="permgrouplab_storage" msgid="1971118770546336966">"Yaddaş"</string>
+    <string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"USB yaddaşa daxil ol."</string>
+    <string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"SD karta daxil ol."</string>
+    <string name="permgrouplab_accessibilityFeatures" msgid="7919025602283593907">"Əlçatımlılıq funksiyaları"</string>
+    <string name="permgroupdesc_accessibilityFeatures" msgid="4205196881678144335">"Yardımçı texnologiya tələb edə biləcəyi funksiyalar."</string>
+    <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Pəncərənin məzmununu əldə edin"</string>
+    <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Əlaqədə olduğunuz pəncərənin məzmununu nəzərdən keçirin."</string>
+    <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Toxunaraq Kəşf et funksiyasını yandırın"</string>
+    <string name="capability_desc_canRequestTouchExploration" msgid="5800552516779249356">"Toxunulan hissələr səsləndiriləcək və ekran jestlərlə idarə oluna biləcək."</string>
+    <string name="capability_title_canRequestEnhancedWebAccessibility" msgid="1739881766522594073">"İnkişaf etmiş veb əlçatımlılığı yandırın"</string>
+    <string name="capability_desc_canRequestEnhancedWebAccessibility" msgid="7881063961507511765">"Skriptlər tətbiq məzmununun daha əlçatımlı olması üçün quraşdırıla bilər."</string>
+    <string name="capability_title_canRequestFilterKeyEvents" msgid="2103440391902412174">"Yazdığınız mətni izləyin"</string>
+    <string name="capability_desc_canRequestFilterKeyEvents" msgid="7463135292204152818">"Kredit kartı nömrələri və parollar kimi şəxsi məlumatlar daxildir."</string>
+    <string name="permlab_statusBar" msgid="7417192629601890791">"status panelini deaktivləşdir və ya dəyişdir"</string>
+    <string name="permdesc_statusBar" msgid="8434669549504290975">"Tətbiqə status panelini deaktiv etməyə və ya sistem ikonalarını əlavə etmək və ya silmək imkanı verir."</string>
+    <string name="permlab_statusBarService" msgid="7247281911387931485">"status paneli"</string>
+    <string name="permdesc_statusBarService" msgid="716113660795976060">"Tətbiqə status paneli olmağa imkan verir."</string>
+    <string name="permlab_expandStatusBar" msgid="1148198785937489264">"status panelini genişlətmək və ya yığmaq"</string>
+    <string name="permdesc_expandStatusBar" msgid="6917549437129401132">"Tətbiqə status panelini genişləndirməyə və ya yox etməyə imkan verir."</string>
+    <string name="permlab_processOutgoingCalls" msgid="3906007831192990946">"gedən zənglərin marşrutunu dəyişmək"</string>
+    <string name="permdesc_processOutgoingCalls" msgid="5331318931937402040">"Tətbiqə zəng etməyə və zəng edilən nömrəni dəyişməyə imkan verir. Zərərli tətbiqlər bundan istifadə edərək gedən zəngləri izləyə, yönləndirə və ya qarşısını ala bilər."</string>
+    <string name="permlab_receiveSms" msgid="8673471768947895082">"SMS qəbul etmək"</string>
+    <string name="permdesc_receiveSms" msgid="6424387754228766939">"Tətbiqə MMS mesajlarını almaq və emal etmək icazəsi verir. Bu o deməkdir ki, tətbiq sizin mesajlarınızı sizə göstərmədən monitorinq edə və ya silə bilər."</string>
+    <string name="permlab_receiveMms" msgid="1821317344668257098">"mətn mesajlarını qəbul edir (MMS)"</string>
+    <string name="permdesc_receiveMms" msgid="533019437263212260">"Tətbiqə MMS mesajlarını qəbul və emal üçün imkan verir. Bu o deməkdir ki, bu tətbiq sizə göstərmədən cihazınıza göndərilən mesajları silə bilər."</string>
+    <string name="permlab_receiveEmergencyBroadcast" msgid="1803477660846288089">"təcili yayımları qəbul edir"</string>
+    <string name="permdesc_receiveEmergencyBroadcast" msgid="848524070262431974">"Tətbiqə təcili yayım mesajlarını qəbul və emal etmək icazəsi verir. Bu icazə ancaq sistem tətbiqləri üçün mümkündür."</string>
+    <string name="permlab_readCellBroadcasts" msgid="1598328843619646166">"mobil yayım mesajlarını oxuyur"</string>
+    <string name="permdesc_readCellBroadcasts" msgid="6361972776080458979">"Tətbiqə sizin telefonunuz tərəfindən alınmış yayım mesajlarını oxuma icazəsi verir. Telefon yayımı bəzi məkanlarda olan fövqəladə hadisələrlə bağlı sizi xəbərdar etmək üçün qəbul edilir. Zərərli tətbiqlər fövqəladə mobil yayım qəbul edildiyi zaman telefonunun performansına və əməliyyatına müdaxilə edə bilər."</string>
+    <string name="permlab_sendSms" msgid="5600830612147671529">"SMS mesajlarını göndərir"</string>
+    <string name="permdesc_sendSms" msgid="7094729298204937667">"Tətbiqə SMS mesajı göndərmə icazəsi verir. Bu gözlənilməyən ödənişlərə səbəb ola bilər. Zərərli tətbiqlər sizin təsdiqiniz olmadan mesaj göndərməklə sizə ödənişə səbəb ola bilərlər."</string>
+    <string name="permlab_sendRespondViaMessageRequest" msgid="8713889105305943200">"mesajla cavab verilməli tədbirlər göndərmək"</string>
+    <string name="permdesc_sendRespondViaMessageRequest" msgid="7107648548468778734">"Tətbiqə zənglər üçün \"mesajla cavabla\" hadisələrini idarə etmək üçün digər mesajlaşma tətbiqlərinə sorğuların göndərilməsi icazəsi verir."</string>
+    <string name="permlab_readSms" msgid="8745086572213270480">"tekst mesajlarınızı oxuyur (SMS və ya MMS)"</string>
+    <string name="permdesc_readSms" product="tablet" msgid="2467981548684735522">"Tətbiqə planşetinizdə və ya SIM kartınızda saxlanan SMS mesajları oxumağa imkan verir. Bu bütün SMS mesajların, onların məzmunundan və konfidensiallığından asılı olmadan oxunması imkanı deməkdir."</string>
+    <string name="permdesc_readSms" product="default" msgid="3695967533457240550">"Tətbiqə telefonunuzda və ya SIM kartınızda saxlanan SMS mesajları oxumağa imkan verir. Bu bütün SMS mesajların, onların məzmunundan və konfidensiallığından asılı olmadan oxunması imkanı deməkdir."</string>
+    <string name="permlab_writeSms" msgid="3216950472636214774">"mətn mesajlarınızı redaktə edir (SMS və ya MMS)"</string>
+    <string name="permdesc_writeSms" product="tablet" msgid="5160413947794501538">"Tətbiqə telefonunuzda və ya SİM kartınızda yerləşən SMS mesajlara yazma icazəsi verir. Zərərli tətbiqlər sizin mesajlarınızı silə bilər."</string>
+    <string name="permdesc_writeSms" product="default" msgid="7268668709052328567">"Tətbiqə telefonunuzda və ya SİM kartınızda yerləşən SMS mesajlara yazma icazəsi verir. Zərərli tətbiqlər sizin mesajlarınızı silə bilər."</string>
+    <string name="permlab_receiveWapPush" msgid="5991398711936590410">"mətn mesajları qəbul etmək (WAP)"</string>
+    <string name="permdesc_receiveWapPush" msgid="748232190220583385">"Tətbiqə WAP mesajlar göndərmək və ya qəbul etmək imkanı verir. Buna mesajları izləmək və Sizə xəbər vermədən silmək imkanları da daxildir."</string>
+    <string name="permlab_getTasks" msgid="6466095396623933906">"işlənən tətbiqlər əldə etmək"</string>
+    <string name="permdesc_getTasks" msgid="7454215995847658102">"Tətbiqə hazırda və az öncə işləyən tapşırıqlar haqqında ətraflı məlumat əldə etməyə imkan verir. Bu da cihazda hansı tətbiqlərin istifadə olunması haqqında məlumatların əldə edilməsinə imkan verir."</string>
+    <string name="permlab_interactAcrossUsers" msgid="7114255281944211682">"istifadəçilər arasında əlaqə qurur"</string>
+    <string name="permdesc_interactAcrossUsers" msgid="364670963623385786">"Tətbiqə bu cihazdakı digər istifadəçilərlə müxtəlif işləri görməyə icazə verir. Zərərli tətbiqlər bundan istifadəçilər arasındakı qorunmanı pozmaq üçün istifadə edə bilər."</string>
+    <string name="permlab_interactAcrossUsersFull" msgid="2567734285545074105">"bütün istifadəçilər ilə əlaqə saxlamaq üçün tam hüquq"</string>
+    <string name="permdesc_interactAcrossUsersFull" msgid="376841368395502366">"İstifadəçilər arasında bütün mümkün əlaqələrə imkan verir."</string>
+    <string name="permlab_manageUsers" msgid="1676150911672282428">"istifadəçiləri idarə edir"</string>
+    <string name="permdesc_manageUsers" msgid="8409306667645355638">"Tətbiqlərə cihazda olan istifadəçiləri, habelə sorğu göndərmə, yaratma və silmə izni verir."</string>
+    <string name="permlab_getDetailedTasks" msgid="6229468674753529501">"işlənən tətbiqlərin detallarını əldə etmək"</string>
+    <string name="permdesc_getDetailedTasks" msgid="153824741440717599">"Tətbiqə hazırda və az öncə işləyən tapşırıqlar haqqında ətraflı məlumat əldə etməyə imkan verir. Zərərli tətbiqlər bundan istifadə edərək şəxsi məlumatları oğurlaya bilər."</string>
+    <string name="permlab_reorderTasks" msgid="2018575526934422779">"işlənən tətbiqlərin sırasını dəyişmək"</string>
+    <string name="permdesc_reorderTasks" msgid="7734217754877439351">"Tətbiqə tapşırıqları ön plandan arxa plana keçirməyə imkan verir. Tətbiq bunu Sizin daxiletməniz olmadan da edə bilər."</string>
+    <string name="permlab_removeTasks" msgid="6821513401870377403">"işlək tətbiqləri dayandırır"</string>
+    <string name="permdesc_removeTasks" msgid="1394714352062635493">"Tətbiqə tapşırıqları silməyə və onların tətbiqlərini məhv etməyə imkan verir. Zərərli tətbiqlər bundan istifadə edərək digər tətbiqlərin işlərini dayandıra bilər."</string>
+    <string name="permlab_manageActivityStacks" msgid="7391191384027303065">"fəaliyyət toplularını idarə edin"</string>
+    <string name="permdesc_manageActivityStacks" msgid="1615881933034084440">"Tətbiqə digər tətbiqlərin fəaliyyəti daxilində fəaliyyət toplularını əlavə etmək, silmək və dəyişmək imkanı verir."</string>
+    <string name="permlab_startAnyActivity" msgid="2918768238045206456">"hər hansı bir fəaliyyət başlat"</string>
+    <string name="permdesc_startAnyActivity" msgid="997823695343584001">"İcazə qorunması və ya eksport edilmiş statusdan asılı olmayaraq, tətbiqə hər hansı fəaliyyəti başlatmağa imkan verir."</string>
+    <string name="permlab_setScreenCompatibility" msgid="6975387118861842061">"ekran uyğunluğunu yerləşdirir"</string>
+    <string name="permdesc_setScreenCompatibility" msgid="692043618693917374">"Tətbiqə digər tətbiqlərin ekran uyğunluğunu yoxlamaq imkanı verir. Zərərli tətbiqlər digər tətbiqlərin fəaliyyətini poza bilər."</string>
+    <string name="permlab_setDebugApp" msgid="3022107198686584052">"tətbiq sazlanmasını aktiv edir"</string>
+    <string name="permdesc_setDebugApp" msgid="4474512416299013256">"Tətbiqə digər bir tətbiq üçün sazlamanı açmaq üçün imkan verir. Zərərli tətbiqlər bunu digər tətbiqləri yox etmək üçün istifadə edə bilər."</string>
+    <string name="permlab_changeConfiguration" msgid="4162092185124234480">"sistem ekran nizamlarını dəyiş"</string>
+    <string name="permdesc_changeConfiguration" msgid="4372223873154296076">"Tətbiqə yerli parametrlər və ya şriftin ölçüsü kimi cari konfiqurasiyanı dəyişməyə imkan verir."</string>
+    <string name="permlab_enableCarMode" msgid="5684504058192921098">"avtomobil rejimini aktivləşdirir"</string>
+    <string name="permdesc_enableCarMode" msgid="4853187425751419467">"Tətbiqə avtomobil rejimini aktivləşdirməyə imkan verir."</string>
+    <string name="permlab_killBackgroundProcesses" msgid="3914026687420177202">"digər tətbiqləri qapatmaq"</string>
+    <string name="permdesc_killBackgroundProcesses" msgid="4593353235959733119">"Tətbiqə başqa tətbiqlərin arxafon proseslərini dayandırmaq icazəsi verir. Bu digər tətbiqlərin dayanmasına səbəb ola bilər."</string>
+    <string name="permlab_forceStopPackages" msgid="2329627428832067700">"Digər tətbiqləri dayanmağa məcbur et"</string>
+    <string name="permdesc_forceStopPackages" msgid="5253157296183940812">"Tətbiqə digər tətbiqləri məcburi şəkildə dayandırmağa imkan verir."</string>
+    <string name="permlab_forceBack" msgid="652935204072584616">"tətbiqi qapanmağa məcbur etmək"</string>
+    <string name="permdesc_forceBack" msgid="3892295830419513623">"Tətbiqə ön planda olan istənilən tətbiqi bağlayaraq geriyə dönməyə imkan verir. Normal tətbiqlər tərəfindən heç vaxt istifadə olunmamalıdır."</string>
+    <string name="permlab_dump" msgid="1681799862438954752">"sistemin daxili durumunu bərpa et"</string>
+    <string name="permdesc_dump" msgid="1778299088692290329">"Tətbiqə sistemin daxili statusunu bərpa etməyə imkan verir. Zərərli tətbiqlər lazım olmadığı halda müxtəlif şəxsi və güvənli məlumatları bərpa edə bilər."</string>
+    <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"ekran kontentini bərpa edir"</string>
+    <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Tətbiqə aktiv pəncərənin məzmununu əldə etməyə imkan verir. Zərərli tətbiqlər bundan istifadə edərək pəncərə məzmununu ələ keçirib parollları oxuya bilər."</string>
+    <string name="permlab_temporary_enable_accessibility" msgid="2312612135127310254">"giriş imkanını müvəqqəti açmaq"</string>
+    <string name="permdesc_temporary_enable_accessibility" msgid="8079456293182975464">"Tətbiqə cihaza girişi müvəqqəti olaraq aktivləşdirməyə imkan verir. Zərərli tətbiqlər istifadəçi razılığı olmadan girişi aktivləşdirə bilər."</string>
+    <string name="permlab_retrieve_window_info" msgid="8532295199112519378">"pəncərə infosunu bərpa edir"</string>
+    <string name="permdesc_retrieve_window_info" msgid="4998836370424186849">"Tətbiqə pəncərə idarəçisindən gələn windows haqqında olan məlumatı bərpa etməyə imkan verir. Zərərli tətbiqlər daxili sistem istifadəsi üçün nəzərdə tutulan məlumatı bərpa edə bilər."</string>
+    <string name="permlab_filter_events" msgid="8675535648807427389">"tədbirləri filtr edir"</string>
+    <string name="permdesc_filter_events" msgid="8006236315888347680">"Tətbiqə daxiletmə filtrini qeydiyyat etdirməyə imkan verir, bu filtr bütün istifadəçi tədbirlərini göndərilməmişdən əvvəl filtrdən keçirir. Zərərli tətbiq istifadəçi müdaxiləsi olmadan İstifadəçi İnterfeysi sisteminə nəzarət edə bilər."</string>
+    <string name="permlab_magnify_display" msgid="5973626738170618775">"ekranı böyüdür"</string>
+    <string name="permdesc_magnify_display" msgid="7121235684515003792">"Tətbiqə ekran kontentini böyütmək icazəsi verir. Zərərli tətbiqlər bundan istifadə edərək ekranda kontenti böyüdərək cihazın qeyri-stabilliyinə səbəb ola bilər."</string>
+    <string name="permlab_shutdown" msgid="7185747824038909016">"qismən söndürür"</string>
+    <string name="permdesc_shutdown" msgid="7046500838746291775">"Aktivlik idarəçiliyini qapanmış hala gətirir. Tam qapanmanı həyata keçirmir."</string>
+    <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"tətbiqdən tətbiqə keçidin qarşısını almaq"</string>
+    <string name="permdesc_stopAppSwitches" msgid="8262195802582255021">"İstifadəçinin başqa tətbiqə keçməsinin qarşısını alır."</string>
+    <string name="permlab_getTopActivityInfo" msgid="2537922311411546016">"cari tətbiq informasiyası əldə etmək"</string>
+    <string name="permdesc_getTopActivityInfo" msgid="8153651434145132505">"Sahibə ekran önündə cari tətbiq və xidmətlər haqqında şəxsi məlumat əldə etməyə imkan verir."</string>
+    <string name="permlab_runSetActivityWatcher" msgid="892239094867182656">"işə salınan bütün tətbiqləri izləyir və idarə edir"</string>
+    <string name="permdesc_runSetActivityWatcher" msgid="6003603162578577406">"Tətbiqə sistemin fəaliyyətləri necə başlatdığını nəzarət və kontrol etməyə imkan verir. Zərərli tətbiqlər sistemi tamamilə kompromis edə bilər. Bu icazə yalnız inkişaf üçündür, heç vaxt normal istifadə üçün deyil."</string>
+    <string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"qaldırılmış yayım paketini göndər"</string>
+    <string name="permdesc_broadcastPackageRemoved" msgid="6621901216207931089">"Tətbiqə tətbiq paketinin silinməsi haqqında bildiriş translasiya etmə icazəsi verir. Zərərli tətbiqlər bundan digər işlək tətbiqləri dayandırmaq üçün istifadə edə bilər."</string>
+    <string name="permlab_broadcastSmsReceived" msgid="5689095009030336593">"SMS tərəfindən qəbul edilən yayım göndər"</string>
+    <string name="permdesc_broadcastSmsReceived" msgid="4152037720034365492">"Tətbiqə mesaj gəlməsi haqqında bildirişi yayımlamaq imkanı verir. Zərərli tətbiqlər bundan gələn SMS mesajlarını saxtalaşdırmaq üçün istifadə edə bilər."</string>
+    <string name="permlab_broadcastWapPush" msgid="3145347413028582371">"WAP-PUSH tərəfindən qəbul edilən yayım göndər"</string>
+    <string name="permdesc_broadcastWapPush" msgid="4783402525039442729">"Tətbiqə WAP PUSH mesajın alındığı haqda bildiriş translasiya etməyə icazə verir. Zərərli tətbiqlər bundan istifadə edərək saxta MMS mesaj alışı və ya səssizcə istənilən veb səhifəni zərərverici variantlarla dəyişmək üçün istifadə edə bilər."</string>
+    <string name="permlab_setProcessLimit" msgid="2451873664363662666">"çalışan proseslərin sayını məhdudlaşdırır"</string>
+    <string name="permdesc_setProcessLimit" msgid="7318061314040879542">"Tətbiqə işlədiləcək maksimum proses sayını idarə etmə izni verir. Normal tətbiqlər tərəfindən tələb olunmur."</string>
+    <string name="permlab_setAlwaysFinish" msgid="550958507798796965">"arxafon tətbiqlərini dayanmağa məcbur edir"</string>
+    <string name="permdesc_setAlwaysFinish" msgid="7471310652868841499">"Tətbiqə aktivitilərin arxa fona getdiyi zaman bitməsini yoxlayır. Normal tətbiqlər tərəfindən tələn olunmur."</string>
+    <string name="permlab_batteryStats" msgid="2789610673514103364">"batareya statistikalarını oxumaq"</string>
+    <string name="permdesc_batteryStats" msgid="5897346582882915114">"Tətbiqə cari aşağı səviyyəli data sitifadəsini oxumaq imkanı verir. Tətbiqə hansı tətbiqi istifadə etdiyiniz haqqında ətraflı məlumat tapmağa imkan verə bilər."</string>
+    <string name="permlab_updateBatteryStats" msgid="3719689764536379557">"batareya statistikalarını dəyişmək"</string>
+    <string name="permdesc_updateBatteryStats" msgid="6862817857178025002">"Tətbiqə yığılmış batareya statistikasını redaktə etmə icazəsi verir. Normal tətbiqlər tərəfindən istifadə edilmir."</string>
+    <string name="permlab_getAppOpsStats" msgid="1508779687436585744">"tətbiq əməliyyat statistikalarını əldə etmək"</string>
+    <string name="permdesc_getAppOpsStats" msgid="6243887041577912877">"Toplanmış tətbiq əməliyyat statistikalarının bərpa edilməsinə imkan verir. Normal tətbiqlər tərəfindən istifadə üçün deyil."</string>
+    <string name="permlab_updateAppOpsStats" msgid="8829097373851521505">"tətbiq əməliyyat statistikasını dəyişmək"</string>
+    <string name="permdesc_updateAppOpsStats" msgid="50784596594403483">"Tətbiqə toplanmış tətbiq əməliyyat statistikasını dəyişməyə imkan verir. Normal tətbiqlər tərəfindən istifadə olunmur."</string>
+    <string name="permlab_backup" msgid="470013022865453920">"sistem yedəkləməsi və bərpasını idarə edir"</string>
+    <string name="permdesc_backup" msgid="6912230525140589891">"Tətbiqə sistemi rezerv etməyə və mexanizmi bərpa etməyə imkan verir. Normal tətbiqlər tərəfindən istifadə edilmək üçün nəzərdə tutulmayıb.."</string>
+    <string name="permlab_confirm_full_backup" msgid="5557071325804469102">"tam rezervi təsdiq etmək və ya əməliyyatı bərpa etmək"</string>
+    <string name="permdesc_confirm_full_backup" msgid="1748762171637699562">"Tətbiqə İstifadəçi İnterfeysi tam rezerv təsdiqini işə salmağa imkan verir. Heç bir tətbiq tərəfindən istifadə olunmamalıdır."</string>
+    <string name="permlab_internalSystemWindow" msgid="2148563628140193231">"icazəsiz pəncərələri görüntüləyir"</string>
+    <string name="permdesc_internalSystemWindow" msgid="7458387759461466397">"Tətbiqə daxili sistem interfeysi tərəfindən istifadə edilməsi üçün nəzərdə tutulmuş pəncərələri yaratmağa icazə verir. Normal tətbiqlər tərəfindən istifadə edilmir."</string>
+    <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"digər tətbiqlər üzərində çəkmək"</string>
+    <string name="permdesc_systemAlertWindow" msgid="8584678381972820118">"Tətbiqə digər tətbiqlərin və ya onların hissələrinin yuxarısında şəkil çəkməyə imkan verir. Onlar istənilən tətbiqin interfeysinin istifadəsinə müdaxilə edə və ya digər tətbiqlərdə axtardıqlarınızı dəyişə bilər."</string>
+    <string name="permlab_setAnimationScale" msgid="2805103241153907174">"qlobal animasiya sürətini dəyişir"</string>
+    <string name="permdesc_setAnimationScale" msgid="7690063428924343571">"Tətbiqə istənilən vaxt qlobal animasiya sürətini (sürətli və ya yavaş animasiyalar) dəyişdirmək imkanı verir."</string>
+    <string name="permlab_manageAppTokens" msgid="1286505717050121370">"tətbiq nişanlarını idarə etmək"</string>
+    <string name="permdesc_manageAppTokens" msgid="8043431713014395671">"Tətbiqlərə onların normal Z-orderinqi keçərək markerlərini yaratma və idarəetmə icazəsi verir. Normal tətbiqlər tərəfindən istifadə olunmur."</string>
+    <string name="permlab_freezeScreen" msgid="4708181184441880175">"ekranı dondurur"</string>
+    <string name="permdesc_freezeScreen" msgid="8558923789222670064">"Tətbiqə tam ekranlı yayım üçün ekranı müvəqqəti olaraq dondurma icazəsi verir."</string>
+    <string name="permlab_injectEvents" msgid="1378746584023586600">"düymələri və idarəetmə düymələrini basır"</string>
+    <string name="permdesc_injectEvents" product="tablet" msgid="206352565599968632">"Tətbiqə özünün daxiletmə tədbirlərini digər tətbiqlərə çatdırmağa imkan verir. Zərərli tətbiqlər planşeti ələ keçirmək üçün bundan istifadə edə bilər."</string>
+    <string name="permdesc_injectEvents" product="default" msgid="653128057572326253">"Tətbiqə özünün daxiletmə tədbirlərini digər tətbiqlərə çatdırmağa imkan verir. Zərərli tətbiqlər telefonu ələ keçirmək üçün bundan istifadə edə bilər."</string>
+    <string name="permlab_readInputState" msgid="469428900041249234">"yazdıqlarınızı və etdiklərinizi izləyir"</string>
+    <string name="permdesc_readInputState" msgid="8387754901688728043">"Tətbiqə basdığınız düymələri izləmək imkanı verilir. Buna parolların və kredit kartı nömrələrinin yazılması da aiddir. Normal tətbiqlər tərəfindən istifadə olunmur."</string>
+    <string name="permlab_bindInputMethod" msgid="3360064620230515776">"daxiletmə metoduna bağlanır"</string>
+    <string name="permdesc_bindInputMethod" msgid="3250440322807286331">"Sahibinə daxiletmə metodunun ən üst səviyyə interfeysinə bağlamaq imkanı verir. Normal tətbiqlər üçün heç vaxt lazım olmamalıdır."</string>
+    <string name="permlab_bindAccessibilityService" msgid="5357733942556031593">"giriş xidmətinə bağlı qal"</string>
+    <string name="permdesc_bindAccessibilityService" msgid="7034615928609331368">"Sahibə giriş xidmətin ən üst səviyyə interfeysi bağlamağa imkan verir. Normal tətbiqlər üçün heç vaxt lazım olmamalıdır."</string>
+    <string name="permlab_bindPrintService" msgid="8462815179572748761">"çap servisini qoşma"</string>
+    <string name="permdesc_bindPrintService" msgid="7960067623209111135">"Sahibinə bir çap xidmətinin ən üst səviyə araüzünü bağlamağa imkan verir. Normal tətbiqlər üçün heç vaxt lazım olmamalıdır."</string>
+    <string name="permlab_accessAllPrintJobs" msgid="1120792468465711159">"bütün çap işlərinə giriş əldə et"</string>
+    <string name="permdesc_accessAllPrintJobs" msgid="2978185311041864762">"Sahibinə digər tətbiqlər tərəfindən yaradılan çap işlərinə giriş hüququ verir. Normal tətbiqlər üçün tələb olunmamalıdır."</string>
+    <string name="permlab_bindNfcService" msgid="2752731300419410724">"NFC xidmətlərinə qoşun"</string>
+    <string name="permdesc_bindNfcService" msgid="6120647629174066862">"Sahibinə NFC kartlarını emulyasiya edən tətbiqləri bir-birinə qoşmağa icazə verin. Normal tətbiqlər üçün lazım deyil."</string>
+    <string name="permlab_bindTextService" msgid="7358378401915287938">"mətn servisini qoşma"</string>
+    <string name="permdesc_bindTextService" msgid="8151968910973998670">"Sahibinə bir mətn xidmətinin ən üst səviyyə araüzünü bağlamağa imkan verir(məsələn, SpellCheckerService). Normal tətbiqlər üçün heç vaxt lazım olmamalıdır."</string>
+    <string name="permlab_bindVpnService" msgid="4708596021161473255">"VPN xidmətə əlaqələndirmək"</string>
+    <string name="permdesc_bindVpnService" msgid="2067845564581693905">"Sahibinə bir Vpn xidmətinin ən üst səviyyə araüzünü bağlamağa imkan verir. Normal tətbiqlər üçün heç vaxt lazım olmamalıdır."</string>
+    <string name="permlab_bindWallpaper" msgid="8716400279937856462">"divar kağızına bağlanır"</string>
+    <string name="permdesc_bindWallpaper" msgid="7108428692595491668">"Cihaz sahibinə yuxarı səviyyəli divar kağızı interfeysini cildləməyə imkan verir. Normal tətbiqlər tərəfindən istifadə olunmamalıdır."</string>
+    <string name="permlab_bindRemoteViews" msgid="5697987759897367099">"widget servisini qoşma"</string>
+    <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Sahibinə vidcet servisin yüksək səviyyəli interfeysi ilə əlaqə saxlamaq icazəsi verir. Normal tətbiqlər tərəfindən heç vaxt istənilməməlidir."</string>
+    <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"cihaz admini ilə ünsiyyət qurmaq"</string>
+    <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Sahibinə bir cihaz idarəçisinə planlar göndərmək üçün imkan verir. Normal tətbiqlər üçün heç vaxt lazım olmamalıdır."</string>
+    <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"cihaz admini əlavə edin və ya silin"</string>
+    <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Sahibinə aktiv cihaz administratorlarını əlavə etməyə və ya silməyə icazə verir. Normal tətbiqlər üçün tələb olunmamalıdır."</string>
+    <string name="permlab_setOrientation" msgid="3365947717163866844">"ekran oriyentasiyasını dəyişir"</string>
+    <string name="permdesc_setOrientation" msgid="3046126619316671476">"Tətbiqə istənilən zaman ekranın vəziyyətini dəyişmə icazəsi verir. Normal tətbiqlər tərəfindən tələb olunmur."</string>
+    <string name="permlab_setPointerSpeed" msgid="9175371613322562934">"kursor sürətini dəyişmək"</string>
+    <string name="permdesc_setPointerSpeed" msgid="6866563234274104233">"Tətbiqə mausun və ya trekpedin kursor sürətini istənilən zaman dəyişməyə imkan verir. Normal tətbiqlər tərəfindən istifadə olunmamalıdır."</string>
+    <string name="permlab_setKeyboardLayout" msgid="4778731703600909340">"klaviatura sxemini dəyişir"</string>
+    <string name="permdesc_setKeyboardLayout" msgid="8480016771134175879">"Tətbiqə klaviatura sxemini dəyişmək imkanı verir. Normal tətbiqlər tərəfindən tələb olunmur."</string>
+    <string name="permlab_signalPersistentProcesses" msgid="4539002991947376659">"tətbiqlərə Linux siqnalları göndərir"</string>
+    <string name="permdesc_signalPersistentProcesses" msgid="4896992079182649141">"Tətbiqə bütün davamlı proseslərə siqnal soğrusu göndərməyə imkan verir."</string>
+    <string name="permlab_persistentActivity" msgid="8841113627955563938">"təbiqi həmişə çalışdır"</string>
+    <string name="permdesc_persistentActivity" product="tablet" msgid="8525189272329086137">"Tətbiqə öz komponentlərini yaddaşda saxlama icazəsi verir. Bu planşetin sürətini zəiflətməklə, digər tətbiqlər üçün mövcud olan yaddaşı limitləyə bilər."</string>
+    <string name="permdesc_persistentActivity" product="default" msgid="4384760047508278272">"Tətbiqə öz komponentlərini yaddaşda saxlama icazəsi verir. Bu digər tətbiqlər üçün mövcud olan yaddaşı limitləyə bilər."</string>
+    <string name="permlab_deletePackages" msgid="184385129537705938">"tətbiqləri sil"</string>
+    <string name="permdesc_deletePackages" msgid="7411480275167205081">"Tətbiqə Android paketləri silmə icazəsi verir. Zərərli tətbiqlər bundan digər vacib tətbiqləri silmək üçün istifadə edə bilər."</string>
+    <string name="permlab_clearAppUserData" msgid="274109191845842756">"digər tətbiqlərin məlumatını silir"</string>
+    <string name="permdesc_clearAppUserData" msgid="4625323684125459488">"Tətbiqə istifadəçi datasını təmizləməyə imkan verir."</string>
+    <string name="permlab_deleteCacheFiles" msgid="3128665571837408675">"digər tətbiqlərin keşini sil"</string>
+    <string name="permdesc_deleteCacheFiles" msgid="3812998599006730196">"Tətbiqə keş faylları silmə icazəsi verir."</string>
+    <string name="permlab_getPackageSize" msgid="7472921768357981986">"tətbiq saxlama yaddaşını ölçmək"</string>
+    <string name="permdesc_getPackageSize" msgid="3921068154420738296">"Tətbiqə özünün kodunu, məlumatını və keş ölçüsünü alma icazəsi verir."</string>
+    <string name="permlab_installPackages" msgid="2199128482820306924">"birbaşa tətbiqlər quraşdırmaq"</string>
+    <string name="permdesc_installPackages" msgid="5628530972548071284">"Tətbiqə yeni və ya güncəllənmiş Android paketlərini quraşdırmağa imkan verir. Zərərli tətbiqlər bundan istifadə edərək güclü səlahiyyətlərə malik tətbiqləri endirə bilər."</string>
+    <string name="permlab_clearAppCache" msgid="7487279391723526815">"bütün tətbiq keş datasını silir"</string>
+    <string name="permdesc_clearAppCache" product="tablet" msgid="8974640871945434565">"Tətbiqə planşetin yaddaşını boşaltmaq üçün digər tətbiqlərin keş fayllarını silmək imkanı verir. Bu da digər tətbiqlərin dataları yenidən əldə etmələri səbəbindən daha yavaş işləmələrinə səbəb ola bilər."</string>
+    <string name="permdesc_clearAppCache" product="default" msgid="2459441021956436779">"Tətbiqə digər tətbiqlərin keş qovluğunu təmizləyərək telefonun yaddaşını boşaltmaq icazəsi verir. Bu digər tətbiqlərin məlumatlarını yenidən əldə etməli olduqlarına görə daha yavaş başlamasına səbəb olur."</string>
+    <string name="permlab_movePackage" msgid="3289890271645921411">"tətbiq resurslarının yerini dəyişir"</string>
+    <string name="permdesc_movePackage" msgid="319562217778244524">"Tətbiqə tətbiq resurslarını daxili mediadan xarici mediaya və əksinə daşımağa imkan verir."</string>
+    <string name="permlab_readLogs" msgid="6615778543198967614">"məxfi loq datasını oxuyur"</string>
+    <string name="permdesc_readLogs" product="tablet" msgid="82061313293455151">"Tətbiqə sistemin müxtəlif jurnal fayllarını oxumağa imkan verir. Bu da Sizin planşetdə etdikləriniz haqqında məlumatlar, həmçinin şəxsi və konfidensial məlumatlar ola bilər."</string>
+    <string name="permdesc_readLogs" product="default" msgid="2063438140241560443">"Tətbiqə sistemin müxtəlif jurnal fayllarını oxumağa imkan verir. Bu da Sizin planşetdə etdikləriniz haqqında məlumatlar, həmçinin şəxsi və konfidensial məlumatlar ola bilər."</string>
+    <string name="permlab_anyCodecForPlayback" msgid="715805555823881818">"oxutmaq üçün istənilən media dekoderi istifadə edir"</string>
+    <string name="permdesc_anyCodecForPlayback" msgid="8283912488433189010">"Tətbiqə playback\'i deşifrə etmək üçün hər hansı bir quraşdırılmış media deşifrələyicisini istifadə etmık imkanı verir."</string>
+    <string name="permlab_manageCaCertificates" msgid="1678391896786882014">"etibarlı etimadnamələri idarə et"</string>
+    <string name="permdesc_manageCaCertificates" msgid="4015644047196937014">"Tətbiqə etibarlı etimadnamələr kimi CA sertifikatlarını quraşdırmaq və sistemdən silməyə icazə verir."</string>
+    <string name="permlab_diagnostic" msgid="8076743953908000342">"diaga məxsus olan mənbələri yaz/oxu"</string>
+    <string name="permdesc_diagnostic" msgid="6608295692002452283">"Tətbiqə diag qrupa məsus olan resursları yazmaq və oxumaq icazəsi verir; məsələn  /dev qovluğundakı fayllar. Bu sistemin stabilliyinə və təhlükəsizliyinə təsir edə bilər. Bu ancaq istehsalçı və ya operator tərəfindən avadanlığa xas diaqnostika üçün olmalıdır."</string>
+    <string name="permlab_changeComponentState" msgid="6335576775711095931">"tətbiq komponentlərini aktivləşdirmə və ya deaktivləşdirmə"</string>
+    <string name="permdesc_changeComponentState" product="tablet" msgid="8887435740982237294">"Tətbiqə digər tətbiq komponentinin aktiv olub-olmadığını dəyişmək imkanı verir. Zərərli tətbiqlər bundan əhəmiyyətli planşet imkanlarını deaktiv etmək üçün istifadə edə bilər. Bu icazə ilə ehtiyatlı olmaq lazımdır, çünki tətbiq komponentləri yararsız, ziddiyyətli, və ya qeyri-sabit statusa çevrilə bilər."</string>
+    <string name="permdesc_changeComponentState" product="default" msgid="1827232484416505615">"Tətbiqə digər tətbiq komponentinin aktiv olub-olmadığını dəyişmək imkanı verir. Zərərli tətbiqlər bundan əhəmiyyətli telefon imkanlarını deaktiv etmək üçün istifadə edə bilər. Bu icazə ilə ehtiyatlı olmaq lazımdır, çünki tətbiq komponentləri yararsız, ziddiyyətli, və ya qeyri-sabit statusa çevrilə bilər."</string>
+    <string name="permlab_grantRevokePermissions" msgid="4627315351093508795">"icazələr vermək və ya ləğv etmək"</string>
+    <string name="permdesc_grantRevokePermissions" msgid="4088642654085850662">"Tətbiqə bu və ya digər tətbiqlərə xüsusi iznlər verməyə icazə verir. Zərərli tətbiqlər  bundan izin vermədiyiniz özəllikləri özlərinə vermək üçün istifadə edə bilər."</string>
+    <string name="permlab_setPreferredApplications" msgid="8463181628695396391">"tərcih edilən tətbiqlər qur"</string>
+    <string name="permdesc_setPreferredApplications" msgid="4973986762241783712">"Tətbiqə tərcih etdiyiniz tətbiqləri dəyişmək imkanı verir. Zərərli tətbiqlər şəxsi məlumatlarınızı toplamaq üçün cari tətbiqlərinizi aldadaraq işləyən tətbiqləri xəbərsiz dəyişə bilər."</string>
+    <string name="permlab_writeSettings" msgid="2226195290955224730">"sistem ayarlarında dəyişiklik etmək"</string>
+    <string name="permdesc_writeSettings" msgid="7775723441558907181">"Tətbiqə sistem ayarları datasını redaktə etmə icazəsi verir. Zərərli tətbiqlər sistem ayarlarını korlaya bilər."</string>
+    <string name="permlab_writeSecureSettings" msgid="204676251876718288">"təhlükəsiz sistem nizamlarını dəyişir"</string>
+    <string name="permdesc_writeSecureSettings" msgid="8159535613020137391">"Tətbiqə sistemin təhlükəsiz ayarlar datasını dəyişməyə imkan verir. Normal tətbiqlər tərəfindən istifadə üçün deyil."</string>
+    <string name="permlab_writeGservices" msgid="2149426664226152185">"Google xidmətlər xəritəsini dəyişdir"</string>
+    <string name="permdesc_writeGservices" msgid="1287309437638380229">"Tətbiqə Google xidmətlər xəritəsini dəyişdirmək imkanı verir. Normal tətbiqlərin istifadəsi üçün deyil."</string>
+    <string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"başlanğıcda işləyir"</string>
+    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7390304664116880704">"Tətbiqə sistem yükləməni bitirdiyi zaman dərhal özünü başlatmağa imkan verir. Bu planşeti başlatmağın uzun çəkməsinə səbəb ola bilər və tətbiqə həmişə çalışdıraraq bütün planşeti yavaşlatmağa imkan verir."</string>
+    <string name="permdesc_receiveBootCompleted" product="default" msgid="513950589102617504">"Tətbiqə sistem bootinqi bitirdikdən dərhal sonra özünü başlatmaq icazəsi verir. Bu telefonun açılmasını ləngidə və daima işlək qalaraq telefonun sürətini aşağı sala bilər."</string>
+    <string name="permlab_broadcastSticky" msgid="7919126372606881614">"daimi siqnal göndərmək"</string>
+    <string name="permdesc_broadcastSticky" product="tablet" msgid="7749760494399915651">"Tətbiqə yayım bitdikdən sonra da qalan çətin yayımlar göndərməyə imkan verir. Hədsiz istifadə çox yaddaş istifadəsinə səbəb olmaqla planşeti yavaş və qeyri-stabil edə bilər."</string>
+    <string name="permdesc_broadcastSticky" product="default" msgid="2825803764232445091">"Tətbiqə yayım bitdikdən sonra da qalan çətin yayımlar göndərməyə imkan verir. Hədsiz istifadə çox yaddaş istifadəsinə səbəb olmaqla telefonu yavaş və qeyri-stabil edə bilər."</string>
+    <string name="permlab_readContacts" msgid="8348481131899886131">"kontakrlatınızı oxumaq"</string>
+    <string name="permdesc_readContacts" product="tablet" msgid="5294866856941149639">"Tətbiqə planşetinizdə yerləşən kontaktları oxumaq icazəsi verir, tez-tez zəng elədiyiniz, emailləşdiyiniz və ya əlaqə saxladığınız xüsusi individuallar daxil olmaqla. Bu icazə tətbiqlərə kontakt məlumatlarınızı saxlamağa və zərərli tətbiqlərə kontakt məlumatlarını sizin bilginiz olmada paylaşma imkanı yaradır."</string>
+    <string name="permdesc_readContacts" product="default" msgid="8440654152457300662">"Tətbiqə tez-tez zəng elədiyiniz, e-məktub göndərdiyiniz və ya əlaqə saxladığınız xüsusi individuallar daxil olmaqla telefonunuzda yerləşən kontaktları oxumaq icazəsi verir. Bu icazə tətbiqlərə kontakt məlumatlarınızı saxlamağa və zərərli tətbiqlərə kontakt məlumatlarını sizin xəbəriniz olmada paylaşma imkanı yaradır."</string>
+    <string name="permlab_writeContacts" msgid="5107492086416793544">"kontaktlarınızı dəyişdirir"</string>
+    <string name="permdesc_writeContacts" product="tablet" msgid="897243932521953602">"Tətbiqə planşetinizdəki zəng etmək tezliyiniz, elektron poçtlarınız, ünsiyyətləriniz haqqında məlumatları dəyişməyə imkan verir. Bu icazə kontakt məlumatlarının silinməsinə də imkan verir."</string>
+    <string name="permdesc_writeContacts" product="default" msgid="589869224625163558">"Tətbiqə Sizin zəng etmək tezliyiniz, elektron poçtlarınız, ünsiyyətləriniz haqqında məlumatları dəyişməyə imkan verir. Buna kontaktların silinməsi imkanı də daxildir."</string>
+    <string name="permlab_readCallLog" msgid="3478133184624102739">"zəng qeydiyyatını oxu"</string>
+    <string name="permdesc_readCallLog" product="tablet" msgid="3700645184870760285">"Tətbiqə gələn və gedən zənglər haqqında olan data daxil olmaqla bərabər planşetinizin zəng qeydiyyatını oxumağa imkan verir. Bu icazə tətbiqlərə zəng qeydiyyatınızı saxlamağa imkan verir və zərərli tətbiqlər zəng qeydiyyat datasını sizdən xəbərsiz paylaşa bilər."</string>
+    <string name="permdesc_readCallLog" product="default" msgid="5777725796813217244">"Tətbiqə telefon jurnalınızı oxumağa imkan verir, buna gələn və gedən zənglər haqqında məlumatlar da daxildir. Bu icazə tətbiqə zəng jurnalı datasını saxlamağa imkan verir ki, Zərərli tətbiqlər bundan istifadə edərək Sizdən xəbərsiz bütün məlumatlarnızı paylaşa bilər."</string>
+    <string name="permlab_writeCallLog" msgid="8552045664743499354">"zəng loqu yazır"</string>
+    <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Tətbiqə planşetinizdəki zəng jurnalını, həmçinin gedən və gələn zənglərin siyahısını dəyişməyə imkan verir. Zərərli tətbiqlər bundan istifadə edərək, zəng jurnalınıza dəyişiklik edə bilər."</string>
+    <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Tətbiqə sizin daxil olan və gedən zənglər daxil olmaqla telefon zəngi loqlarınızı redaktə etmək icazəsi verir. Zərərli tətbiqlər bundan telefon loqlarınızı silmək və ya redaktə etmək üçün istifadə edə bilər."</string>
+    <string name="permlab_readProfile" msgid="4701889852612716678">"öz kontakt kartınızı oxuyun"</string>
+    <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Tətbiqə cihazınızda yerləşən adınız və kontakt məlumatlarınız kimi şəxsi profil məlumatlarını oxuma icazəsi verir. Bu o deməkdir ki, tətbiq sizi tanıya və sizin profil məlumatlarınızı başqalarına göndərə bilər."</string>
+    <string name="permlab_writeProfile" msgid="907793628777397643">"sizin kontakt kartınızda dəyişiklik etmək"</string>
+    <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Tətbiqə cihazınızda yerləşən adınız və kontakt məlumatlarınız kimi şəxsi profil məlumatlarını dəyişmək və ya əlavə etmək icazəsi verir. Bu o deməkdir ki, tətbiq sizi tanıya və sizin profil məlumatlarınızı başqalarına göndərə bilər."</string>
+    <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"sosial lentinizi oxuyur"</string>
+    <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Tətbiqə Sizin və dostlarınızın sosial güncəllərini əldə etmək və sinxronizə etmək icazəsi verir. Məlumat paylaşarkən diqqətli olun - konfidensiallıqdan asılı olmayaraq bu, Siz və dostlarınız arasında sosial şəbəkələrdəki danışığı oxumaq imkanı verir. Qeyd: bu icazə bütün sosial şəbəkələrdə icra edilə bilməz."</string>
+    <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"sosial axınınıza yazır"</string>
+    <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Tətbiqə dostlarınızdan sosial yenilənmələri göstərmə icazəsi verir. Məlumat paylaşarkən diqqətli olun - bu dostlarınızdan gələn mesajı emal etməyə izn verir. Qeyd: bu icazə bütün sosial şəbəkələrə şamil olunmaya bilər."</string>
+    <string name="permlab_readCalendar" msgid="5972727560257612398">"təqvim tədbirlərini və konfidensial məlumatları oxuyur"</string>
+    <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Tətbiqə dostlarınızın və əməkdaşlarınızın planşetinizdə yerləşən kalendar tədbirlərini oxumağa icazə verir. Bu tətbiqə konfidensiallıq və ya həssaslıqdan asılı olmayaraq sizin kalendar məlumatlarınızı paylaşmaq və ya saxlamağa imkan yaradır."</string>
+    <string name="permdesc_readCalendar" product="default" msgid="7434548682470851583">"Tətbiqə dost və əməkdaşlara məxsus olanlar daxil olmaqla planşetdə yerləşən bütün kalendar tətbiqlərini oxumaq icazəsi verir. Bu tətbiqə konfidensiallıq və ya həssaslıqdan asılı olmayaraq, Sizin kalendar məlumatlarınızı paylaşmaq və ya saxlamaq imkanı yaradır."</string>
+    <string name="permlab_writeCalendar" msgid="8438874755193825647">"cihaz sahibinin icazəsi olmadan təqvim tədbirləri əlavə etmək və ya dəyişmək, bunun haqqında bildirişlər göndərmək"</string>
+    <string name="permdesc_writeCalendar" product="tablet" msgid="6679035520113668528">"Tətbiqə planşetinizdəki tədbirləri dəyişməyə, tədbir əlavə etməyə və ya silməyə imkan verir. Buna Sizin dostlarınızla və həmkarlarınızla birlikdə hazırladığınız tədbirlər də daxildir. Bu, tədbirə Sizin adınızdan və Sizdən xəbərsiz, təqvim sahibi kimi mesaj göndərmək imkanını verir."</string>
+    <string name="permdesc_writeCalendar" product="default" msgid="2324469496327249376">"Dostlarınız və həmkarlarınıza məxsus olanlar da daxil olmaqla, tətbiqə telefonunuzdakı tədbirləri dəyişməyə, tədbir əlavə etməyə və ya silməyə imkan verir. Bu, tədbirə Sizin adınızdan və Sizdən xəbərsiz, təqvim sahibi kimi mesaj göndərmək imkanı verir."</string>
+    <string name="permlab_accessMockLocation" msgid="8688334974036823330">"test üçün saxta məkan mənbələri"</string>
+    <string name="permdesc_accessMockLocation" msgid="5808711039482051824">"Test üçün saxta məkan mənbələri yaradın və ya yeni məkan provayderi quraşdırın. Bu tətbiqlərə GPS və məkan provayderləri kimi məkan mənbələrindən alınan məkan və/ya statusları yenidən yazmağa icazə verir."</string>
+    <string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"əlavə məkan provayderi əmrlərinə çıxış"</string>
+    <string name="permdesc_accessLocationExtraCommands" msgid="5945166642335800763">"Tətbiqə əlavə məkan provayderi əmrlərinə daxil olmaq imkanı verir. Bu tətbiqə GPS əməliyyatına və ya digər məkan mənbələrinə mane olmaq imkanı verə bilər."</string>
+    <string name="permlab_installLocationProvider" msgid="6578101199825193873">"Məkan provayderini quraşdırmaq icazəsi"</string>
+    <string name="permdesc_installLocationProvider" msgid="9066146120470591509">"Yeni yerləşmə təchizatçısını test etmək və ya quraşdırmaq üçün mock yerləşmə mənbələri yarat. Bu tətbiqə yerləşmənin və/ya digər yerləşmə mənbələrindən GPS və ya yerləşmə təchizatçıları qayıtmış statusların ləğv etməsinə imkan verir."</string>
+    <string name="permlab_accessFineLocation" msgid="1191898061965273372">"dəqiq yeri (GPS və şəbəkə-əsaslı)"</string>
+    <string name="permdesc_accessFineLocation" msgid="5295047563564981250">"Qlobal Pozisiya Sistemini və ya şəbəkə qüllələri və Wi-Fi kimi şəbəkə məkanını istifadə edərək tətbiqə Sizin dəqiq yerinizi təyin etməyə imkan verir. Bu məkan xidmətləri aktivləşdirilməlidirlər ki, Siz tətbiqi istifadə edən zaman tətbiq onları istifadə edə bilsin. Tətbiqlər Sizin harada olmağınızı bunun vasitəsilə təyin edəcək, eyni zamanda, bu xidmət əlavə batareya enerjisi apara bilər."</string>
+    <string name="permlab_accessCoarseLocation" msgid="4887895362354239628">"təxmini məkan (şəbəkə əsaslı)"</string>
+    <string name="permdesc_accessCoarseLocation" msgid="2538200184373302295">"Tətbiqə təxmini yerinizi almaq üçün imkan verir. Bu yer, yerləşmə xidmətləri tərəfindən mobil qüllələr və Wi-Fi kimi şəbəkə yerləşmə mənbələrdən istifadə etməklə əldə edilir. Bu yerləşmə xidmətləri tətbiqin onlardan istifadəsi üçün açıq və cihazınızın onları istifadəsi üçün mövcud olmalıdır. Tətbiqlər bundan sizin təxminən harada olduğunuzu müəyyənləşdirmək üçün istifadə edə bilər."</string>
+    <string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"SurfaceFlinger\'ə daxil olmaq"</string>
+    <string name="permdesc_accessSurfaceFlinger" msgid="1041619516733293551">"Tətbiqə aşağı səviyyəli SurfaceFnger özəlliklərini istifadə etməyə icazə verir."</string>
+    <string name="permlab_readFrameBuffer" msgid="6690504248178498136">"freym buferi oxuyur"</string>
+    <string name="permdesc_readFrameBuffer" msgid="4937405521809454680">"Tətbiqə freym buferinin kontentini oxumaq icazəsi verir."</string>
+    <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"Wifi görüntülərini quraşdır"</string>
+    <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Tətbiqə Wifi görüntülərini quraşdırmağa və onlara qoşulmağa imkan verir."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"WiFi görüntülərini dəyişir"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Tətbiqə Wifi displeylərinin aşağı səviyyəli funksiyalarını idarə etmək imkanı verir."</string>
+    <string name="permlab_captureAudioOutput" msgid="6857134498402346708">"audio çıxışı alın"</string>
+    <string name="permdesc_captureAudioOutput" msgid="6210597754212208853">"Tətbiqə audio çıxışı almaq və yenidən yönləndirmək imkanı verir."</string>
+    <string name="permlab_captureVideoOutput" msgid="2246828773589094023">"video çıxışı alın"</string>
+    <string name="permdesc_captureVideoOutput" msgid="359481658034149860">"Tətbiqə video çıxışı almaq və yenidən yönləndirmək imkanı verir."</string>
+    <string name="permlab_captureSecureVideoOutput" msgid="7815398969303382016">"təhlükəsiz video çıxışı alın"</string>
+    <string name="permdesc_captureSecureVideoOutput" msgid="2779793064709350289">"Tətbiqə güvənli video çıxışı almaq və yenidən yönləndirmək imkanı verir."</string>
+    <string name="permlab_modifyAudioSettings" msgid="6095859937069146086">"audio ayarlarınızı dəyişir"</string>
+    <string name="permdesc_modifyAudioSettings" msgid="3522565366806248517">"Tətbiqə səs və hansı spikerin çıxış üçün istifadə olunduğu kimi qlobal səs ayarlarını dəyişdirməyə imkan verir."</string>
+    <string name="permlab_recordAudio" msgid="3876049771427466323">"səs yaz"</string>
+    <string name="permdesc_recordAudio" msgid="4906839301087980680">"Tətbiqə mikrofonla audio yazmaq icazəsi verir. İcazə tətbiqə sizin təsdiqiniz olmadan istənilən zaman səs yazma izni verir."</string>
+    <string name="permlab_camera" msgid="3616391919559751192">"şəkil və video çəkmək"</string>
+    <string name="permdesc_camera" msgid="8497216524735535009">"Tətbiqə kamera ilə şəkil və video çəkməyə imkan yaradır. Bu icazə tətbiqə sizin təsdiqiniz olmadan kameradan istifadə icazəsi verir."</string>
+    <string name="permlab_cameraDisableTransmitLed" msgid="2651072630501126222">"kamera istifadə edildikdə LED göstərici ötürülməsini deaktiv edir"</string>
+    <string name="permdesc_cameraDisableTransmitLed" msgid="4764585465480295341">"Öncədən quraşdırılmış sistem tətbiqinə kamera tərəfindən istifadə edilən LED indikatorunu söndürmək icazəsi verir."</string>
+    <string name="permlab_brick" product="tablet" msgid="2961292205764488304">"planşeti daimi olaraq aradan qaldır"</string>
+    <string name="permlab_brick" product="default" msgid="8337817093326370537">"telefonu həmişəlik deaktiv etmək"</string>
+    <string name="permdesc_brick" product="tablet" msgid="4334818808001699530">"Tətbiqə planşeti birdəfəlik deaktiv etməyə imkan verir. Bu da çox təhlükəlidir."</string>
+    <string name="permdesc_brick" product="default" msgid="5788903297627283099">"Tətbiqə bütün telefonu birdəfəlik deaktivləşdirməyə imkan verir. Bu çox təhlükəlidir."</string>
+    <string name="permlab_reboot" product="tablet" msgid="3436634972561795002">"planşeti yenidən yüklənməyə məcbur edir"</string>
+    <string name="permlab_reboot" product="default" msgid="2898560872462638242">"telefonu yenidən yüklənməyə məcbur edir"</string>
+    <string name="permdesc_reboot" product="tablet" msgid="8172056180063700741">"Tətbiqə planşeti yenidən yükləməyə məcbur etmək imkanı verir."</string>
+    <string name="permdesc_reboot" product="default" msgid="5326008124289989969">"Tətbiqə telefonu yenidən yükləməyə məcbur etmək üçün imkan verir."</string>
+    <string name="permlab_mount_unmount_filesystems" product="nosdcard" msgid="2927361537942591841">"USB yaddaş fayl sisteminə daxil olmaq"</string>
+    <string name="permlab_mount_unmount_filesystems" product="default" msgid="4402305049890953810">"SD Kart fayl sisteminə daxil olmaq"</string>
+    <string name="permdesc_mount_unmount_filesystems" msgid="1829290701658992347">"Tətbiqə silinəbilən yaddaşları və ya fayl sistemini quraşdırma və ayırma icazəsi verir."</string>
+    <string name="permlab_mount_format_filesystems" product="nosdcard" msgid="6227819582624904972">"USB yaddaşı silir"</string>
+    <string name="permlab_mount_format_filesystems" product="default" msgid="262582698639274056">"SD kartı silir"</string>
+    <string name="permdesc_mount_format_filesystems" msgid="8784268246779198627">"Tətbiqə çıxarıla bilən yaddaşı format etməyə imkan verir."</string>
+    <string name="permlab_asec_access" msgid="3411338632002193846">"daxili yaddaşınız haqqında məlumat əldə etmək"</string>
+    <string name="permdesc_asec_access" msgid="3094563844593878548">"Tətbiqə daxili yaddaş haqqında məlumat almağa imkan verir."</string>
+    <string name="permlab_asec_create" msgid="6414757234789336327">"daxili yaddaş yaratmaq"</string>
+    <string name="permdesc_asec_create" msgid="4558869273585856876">"Tətbiqə daxili yaddaş yaratmaq üçün imkan verir."</string>
+    <string name="permlab_asec_destroy" msgid="526928328301618022">"daxili yaddaşı məhv etmə"</string>
+    <string name="permdesc_asec_destroy" msgid="7218749286145526537">"Tətbiqə daxili yaddaşı məhv etmə icazəsi verir."</string>
+    <string name="permlab_asec_mount_unmount" msgid="8877998101944999386">"daxili yaddaşı montaj və ya demontaj etmək"</string>
+    <string name="permdesc_asec_mount_unmount" msgid="3451360114902490929">"Tətbiqə daxili yaddaşı quraşdırma/ayırma icazəsi verir."</string>
+    <string name="permlab_asec_rename" msgid="7496633954080472417">"daxili yaddaşın adını dəyiş"</string>
+    <string name="permdesc_asec_rename" msgid="1794757588472127675">"Tətbiqə daxili yaddaşın adını dəyişmək imkanı verir."</string>
+    <string name="permlab_vibrate" msgid="7696427026057705834">"vibrasiyaya nəzarət edir"</string>
+    <string name="permdesc_vibrate" msgid="6284989245902300945">"Tətbiqə vibratoru idarə etmə icazəsi verir."</string>
+    <string name="permlab_flashlight" msgid="2155920810121984215">"Flash işığını idarə edir"</string>
+    <string name="permdesc_flashlight" msgid="6522284794568368310">"Tətbiqə siqnal işığı na nəzarət etməyə imkan verir."</string>
+    <string name="permlab_manageUsb" msgid="1113453430645402723">"USB cihazlar üçün tərcihləri və icazələri idarə etmək"</string>
+    <string name="permdesc_manageUsb" msgid="7776155430218239833">"Tətbiqə USB cihazlar üçün olan tərcihləri və icazələri idarə etməyə imkan verir."</string>
+    <string name="permlab_accessMtp" msgid="4953468676795917042">"MTP protokol həyata keçirmək"</string>
+    <string name="permdesc_accessMtp" msgid="6532961200486791570">"Kernel MTP drayverə girişə imkan verir ki, MTP USB protokolunu həyata keçirsin."</string>
+    <string name="permlab_hardware_test" msgid="4148290860400659146">"avadanlığı sınaq edir"</string>
+    <string name="permdesc_hardware_test" msgid="6597964191208016605">"Tətbiqə avadanlığı yoxlamaq üçün müxtəlif periferiyaları kontrol etməyə imkan verir."</string>
+    <string name="permlab_callPhone" msgid="3925836347681847954">"telefon nömrələrinə birbaşa zəng edir"</string>
+    <string name="permdesc_callPhone" msgid="3740797576113760827">"Tətbiqə Sizin müdaxiləniz olmadan telefon zəngləri etməyə imkan verir. Zərərli tətbiqlər Sizdən xəbərsiz şəkildə müxtəlif zənglər edərək, Sizə maddi ziyan vura bilər. Qeyd: Bu, tətbiqlərə təcili nömrələrə zəng etməyə icazə vermir."</string>
+    <string name="permlab_callPrivileged" msgid="4198349211108497879">"istənilən nömrəyə birbaşa zəng edir"</string>
+    <string name="permdesc_callPrivileged" msgid="1689024901509996810">"Tətbiqə Sizin müdaxiləniz olmadan, təcili zənglər də daxil olmaqla, istənilən telefon zəngini etməyə imkan verir. Zərərli tətbiqlər bundan istifadə edərək, təcili nömrələrə qanunsuz zəng vurmaqla Sizin üçün hüquqi problemlər yarada bilər."</string>
+    <string name="permlab_performCdmaProvisioning" product="tablet" msgid="4842576994144604821">"CDMA planşet ayarlarına birbaşa başlamaq"</string>
+    <string name="permlab_performCdmaProvisioning" product="default" msgid="5604848095315421425">"CDMA telefon quraşdırmalarına birbaşa başlamaq"</string>
+    <string name="permdesc_performCdmaProvisioning" msgid="1994193538802314186">"Tətbiqə CDMA hazırlığını başlatma icazəsi verir. Zərərli tətbiqlər ehtiyac olmadıqda CDMA hazırlığını başlada bilərlər."</string>
+    <string name="permlab_locationUpdates" msgid="7785408253364335740">"məkan güncəlləmə bildirişlərini idarə edir"</string>
+    <string name="permdesc_locationUpdates" msgid="1120741557891438876">"Tətbiqə radiodan gələn məkan güncəllənmələrini aktiv və ya deaktiv etməyə imkan verir. Normal tətbiqlər tərəfindən istifadə olunmur."</string>
+    <string name="permlab_checkinProperties" msgid="7855259461268734914">"qeydiyyat xüsusiyyətlərini əldə edir"</string>
+    <string name="permdesc_checkinProperties" msgid="4024526968630194128">"Tətbiqə giriş qeydi servisi tərəfindən yüklənmiş mülkiyyətə girişi oxumaq/yazmaq imkanl verir. Normal tətbiqlər üçün nəzərdə tutulmayıb."</string>
+    <string name="permlab_bindGadget" msgid="776905339015863471">"vidcetlər seç"</string>
+    <string name="permdesc_bindGadget" msgid="8261326938599049290">"Tətbiqə sistemə hansı vidcetin hansı tətbiq tərəfindən istifadə edilə bilməsini deməyə icazə verir. Bu icazəli tətbiqlər şəxsi məlumatlara və digər tətbiqlərə çıxış verə bilər. Normal tətbiqlər tərəfindən istifadə üçün deyil."</string>
+    <string name="permlab_modifyPhoneState" msgid="8423923777659292228">"telefon statusunu dəyişmək"</string>
+    <string name="permdesc_modifyPhoneState" msgid="1029877529007686732">"Tətbiqə cihazın telefon funksiyalarını idarə etmək imkanı verir. Belə icazəli tətbiq Sizi xəbərdar etmədən şəbəkələri qoşa, telefon radiosunu yandırıb-söndürə bilər."</string>
+    <string name="permlab_readPhoneState" msgid="9178228524507610486">"telefon statusunu və identifikasiyanı oxuyur"</string>
+    <string name="permdesc_readPhoneState" msgid="1639212771826125528">"Tətbiqə cihazın telefon funksiyalarına giriş icazəsi verir. Belə icazəli tətbiq bu telefonun nömrəsini və cihaz İD\'ni, zəngin aktiv olub-olmadığını və zəng edilən nömrəni müəyyən edə bilər."</string>
+    <string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"planşetin yuxu rejiminin qarşısını almaq"</string>
+    <string name="permlab_wakeLock" product="default" msgid="573480187941496130">"telefonun yuxu rejiminə keçməsini əngəllə"</string>
+    <string name="permdesc_wakeLock" product="tablet" msgid="7311319824400447868">"Tətbiqə planşetin yuxu rejimini qadağan etməyə imkan verir."</string>
+    <string name="permdesc_wakeLock" product="default" msgid="8559100677372928754">"Tətbiqə telefonun yuxu rejimini qadağan etmək imkanı verir."</string>
+    <string name="permlab_devicePower" product="tablet" msgid="2787034722616350417">"planşeti yandırma və ya söndürmə"</string>
+    <string name="permlab_devicePower" product="default" msgid="4928622470980943206">"telefonu yandırmaq və ya söndürmək"</string>
+    <string name="permdesc_devicePower" product="tablet" msgid="6689862878984631831">"Tətbiqə planşeti yandırmağa və söndürməyə imkan verir."</string>
+    <string name="permdesc_devicePower" product="default" msgid="6037057348463131032">"Tətbiqə telefonu yandırıb söndürmə icazəsi verir."</string>
+    <string name="permlab_factoryTest" msgid="3715225492696416187">"zavod test rejimində işləyir"</string>
+    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Planşet avadanlığına tam girişə imkan verməklə aşağı səviyyəli istehsalçı sınağı kimi işləyir. Yalnız planşet istehsalçı sınaq rejimində olduqda işləyir."</string>
+    <string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"Bir aşağı səviyyəli istehsalçı testi kimi çalışdırın, telefon hardware üçün tam giriş imkanı verir. Ancaq telefon, istehsalçı test rejimində çalışdığı zaman aktivdir."</string>
+    <string name="permlab_setWallpaper" msgid="6627192333373465143">"divar kağızı yerləşdirir"</string>
+    <string name="permdesc_setWallpaper" msgid="7373447920977624745">"Tətbiqə sistemə divar kağızı yerləşdirmək icazəsi verir."</string>
+    <string name="permlab_setWallpaperHints" msgid="3278608165977736538">"divar kağızı ölçüsünü verir"</string>
+    <string name="permdesc_setWallpaperHints" msgid="8235784384223730091">"Tətbiqə sistem divar kağızı ölçüsü göstərişlərini müəyyən etməyə imkan verir."</string>
+    <string name="permlab_masterClear" msgid="2315750423139697397">"fabrik defoltuna sıfırlamaq"</string>
+    <string name="permdesc_masterClear" msgid="3665380492633910226">"Tətbiqə bütün məlumatları, nizamları və quraşdırılmış tətbiqləri silərək sistemi fabrik nizamlarına qaytarmaq imkanı verir."</string>
+    <string name="permlab_setTime" msgid="2021614829591775646">"vaxtı təyin edir"</string>
+    <string name="permdesc_setTime" product="tablet" msgid="1896341438151152881">"Tətbiqə planşetin saat vaxtını dəyişməyə imkan verir."</string>
+    <string name="permdesc_setTime" product="default" msgid="1855702730738020">"Tətbiqə telefonun saat vaxtını dəyişməyə imkan verir."</string>
+    <string name="permlab_setTimeZone" msgid="2945079801013077340">"vaxt zonasını quraşdırır"</string>
+    <string name="permdesc_setTimeZone" product="tablet" msgid="1676983712315827645">"Tətbiqə planşetin vaxt zonasını dəyişmə icazəsi verir."</string>
+    <string name="permdesc_setTimeZone" product="default" msgid="4499943488436633398">"Tətbiqə telefon saat zolağını dəyişmək üçün imkan verir."</string>
+    <string name="permlab_accountManagerService" msgid="4829262349691386986">"AccountManagerService kimi davranır"</string>
+    <string name="permdesc_accountManagerService" msgid="1948455552333615954">"Tətbiqə AccountAuthenticators\'ə zəng etməyə imkan verir."</string>
+    <string name="permlab_getAccounts" msgid="1086795467760122114">"cihazda hesabları tapır"</string>
+    <string name="permdesc_getAccounts" product="tablet" msgid="2741496534769660027">"Tətbiqə planşet tərəfindən bilinən hesabların siyahısını alma icazəsi verir. Bu quraşdırdığınız tətbiqlər tərəfindən yaradılmış istənilən hesab ola bilər."</string>
+    <string name="permdesc_getAccounts" product="default" msgid="3448316822451807382">"Tətbiqə telefonda olan hesabların siyahısını əldə etməyə imkan verir. Buna quraşdırdığınız istənilən tətbiq tərəfindən yaradılan hesablar da aiddir."</string>
+    <string name="permlab_authenticateAccounts" msgid="5265908481172736933">"hesablar yaradır və parollar təyin edir"</string>
+    <string name="permdesc_authenticateAccounts" msgid="5472124296908977260">"Tətbiqə AccountManager\'in hesab yaratmaq və parol almaq və açmaq daxil olmaqla bərabər, hesab təsdiqləyici imkanlarını istifadə etməyə icazə verir."</string>
+    <string name="permlab_manageAccounts" msgid="4983126304757177305">"hesabları əlavə edir və ya silir"</string>
+    <string name="permdesc_manageAccounts" msgid="8698295625488292506">"Tətbiqə hesabların əlavə olunması və ya silinməsi, həmçinin onların parollarının silinməsi kimi əməliyyatları icra etməyə imkan verir."</string>
+    <string name="permlab_useCredentials" msgid="235481396163877642">"cihazda hesablar istifadə etmək"</string>
+    <string name="permdesc_useCredentials" msgid="7984227147403346422">"Tətbiqə autentifikasiya tokenləri sorğularını göndərməyə icazə verir."</string>
+    <string name="permlab_accessNetworkState" msgid="4951027964348974773">"şəbəkə bağlantılarına baxmaq"</string>
+    <string name="permdesc_accessNetworkState" msgid="8318964424675960975">"Tətbiqə mövcud olan və qoşulan şəbəkələr kimi qoşulmalar haqqında məlumatı görməyə icazə verir."</string>
+    <string name="permlab_createNetworkSockets" msgid="8018758136404323658">"tam şəbəkə girişi"</string>
+    <string name="permdesc_createNetworkSockets" msgid="3403062187779724185">"Tətbiqə şəbəkə soketlərini yaratmağa və fərdi şəbəkə protokollarını istifadə etməyə imkan verir. Brauzer və digər tətbiqlər datanın internetə ötürülməsini təmin edən vəsaitlər verir, ona görə də datanın internetə gönrədilməsi üçün bu icazə tələb olunmur."</string>
+    <string name="permlab_writeApnSettings" msgid="505660159675751896">"şəbəkə nizamlarını və trafiki dəyişdirir/qarşısını alır"</string>
+    <string name="permdesc_writeApnSettings" msgid="5333798886412714193">"Tətbiqə şəbəkə trafikinin qarşısını almaq üçün şəbəkə nizamlarını dəyişmə icazəsi verir, məsələn proksini və ya istənilən APN-in portunu. Zərərli tətbiqlər şəbəkə paketlərini sizin bilginiz olmadan monitorinq edə, yönləndirə və ya redaktə edə bilər."</string>
+    <string name="permlab_changeNetworkState" msgid="958884291454327309">"şəbəkə bağlantısını dəyişir"</string>
+    <string name="permdesc_changeNetworkState" msgid="6789123912476416214">"Tətbiqə şəbəkə vəziyyətini dəyişməyə icazə verir."</string>
+    <string name="permlab_changeTetherState" msgid="5952584964373017960">"Sərhədli bağlantını dəyişir"</string>
+    <string name="permdesc_changeTetherState" msgid="1524441344412319780">"Tətbiqə birləşilmiş şəbəkə bağlantısının statusunu dəyişməyə imkan verir."</string>
+    <string name="permlab_changeBackgroundDataSetting" msgid="1400666012671648741">"arxafon data istifadəsi ayarını dəyişir"</string>
+    <string name="permdesc_changeBackgroundDataSetting" msgid="5347729578468744379">"Tətbiqə fon rejimi nizamlarını dəyişməyə icazə verir."</string>
+    <string name="permlab_accessWifiState" msgid="5202012949247040011">"Wi-Fi bağlantılarına baxmaq"</string>
+    <string name="permdesc_accessWifiState" msgid="5002798077387803726">"Tətbiqə Wi-Fi şəbəkələri haqqında məlumatı görməyə icazə verir, məsələn, Wi-Fi mövcudluğu və qoşulmuş Wi-Fi cihazlarının adları."</string>
+    <string name="permlab_changeWifiState" msgid="6550641188749128035">"Wi-Fi şəbəkəsinə qoşulmaq və ya ayrılmaq"</string>
+    <string name="permdesc_changeWifiState" msgid="7137950297386127533">"Tətbiqə Wi-Fi çıxış nöqtəsinə qoşulmaq və ondan ayrılmaq və cihazın Wi-Fi şəbəkə nizamlarını dəyişməyə icazə verir."</string>
+    <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"Wi-Fi Multicast qəbuluna icazə ver"</string>
+    <string name="permdesc_changeWifiMulticastState" product="tablet" msgid="7969774021256336548">"Tətbiqə Wi-Fi şəbəkədə sizin planşetdən başqa digər multikast adreslərə yönləndirilmiş paketləri almaq icazəsi verir. Bu qeyri-çoxadresli rejimdən fəqli olaraq daha çox enerji işlədir."</string>
+    <string name="permdesc_changeWifiMulticastState" product="default" msgid="6851949706025349926">"Tətbiqə qrup ünvanlar istifadə etməklə, Wi-Fi şəbəkəsində olan bütün cihazlara göndərilmiş paketləri qəbul etməyə imkan verir. Buna daha çox enerji sərf olunur."</string>
+    <string name="permlab_bluetoothAdmin" msgid="6006967373935926659">"Bluetooth ayarlarını əldə edir"</string>
+    <string name="permdesc_bluetoothAdmin" product="tablet" msgid="6921177471748882137">"Tətbiqə yerli Bluetooth planşetinin konfiqurasiyasını görməyə və məsafədən cihazları tapmağa və cütləməyə imkan verir."</string>
+    <string name="permdesc_bluetoothAdmin" product="default" msgid="8931682159331542137">"Tətbiqə lokal Bluetooth telefonunu konfiqurə etməyə və uzaq cihazları kəşf etmək və onlara qoşulmaq icazəsi verir."</string>
+    <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX\'a qoşul və bağlantını kəs"</string>
+    <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Tətbiqə WiMAX mövcudluğu və qoşulmuş WiMAX şəbəkələrini təyin etməyə icazə verir."</string>
+    <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX vəziyyətini dəyişir"</string>
+    <string name="permdesc_changeWimaxState" product="tablet" msgid="3156456504084201805">"Tətbiqə planşeti WiMAX şəbəkələrinə qoşmaq və onlardan ayırmaq icazəsi verir."</string>
+    <string name="permdesc_changeWimaxState" product="default" msgid="697025043004923798">"Tətbiqə telefonu WiMAX şəbəkəsinə qoşmağa və ya WiMAX şəbəkəsindən ayırmağa imkan verir."</string>
+    <string name="permlab_bluetooth" msgid="6127769336339276828">"Bluetooth cihazları ilə cütləndirmək"</string>
+    <string name="permdesc_bluetooth" product="tablet" msgid="3480722181852438628">"Tətbiqə yerli Bluetooth planşetinin konfiqurasiyasını görməyə və cütlənmiş cihazlarla bağlantılar etməyə və qəbul etməyə imkan verir."</string>
+    <string name="permdesc_bluetooth" product="default" msgid="3207106324452312739">"Tətbiqə Bluetooth və ya telefon konfiqurasiyalarını görməyə və qoşulmuş cihazlarla əlaqə qurmağa və qəbul etməyə icazə verir."</string>
+    <string name="permlab_nfc" msgid="4423351274757876953">"Near Field Communication\'ı kontrol et"</string>
+    <string name="permdesc_nfc" msgid="7120611819401789907">"Tətbiqə Yaxın Məsafə Kommunikasiyası (NFC) teqləri, kartları və oxuyucuları ilə əlaqə qurmağa icazə verir."</string>
+    <string name="permlab_disableKeyguard" msgid="3598496301486439258">"Ekran kilidini deaktiv edir"</string>
+    <string name="permdesc_disableKeyguard" msgid="6034203065077122992">"Tətbiqə kilid açarını və təhlükəsizlik parolunu deaktiv etməyə imkan verir. Qanuni misal budur ki, telefon zəng qəbul edən zaman kilidi açır və zəng qurtarandan sonra kilidi bağlayır."</string>
+    <string name="permlab_readSyncSettings" msgid="6201810008230503052">"sinx ayarlarını oxu"</string>
+    <string name="permdesc_readSyncSettings" msgid="2706745674569678644">"Tətbiqə hesablar üçün sinxronizasiya nizamlarını oxuma icazəsi verir. Məsələn, bu Şəxslər tətbiqinin sinxronizə olunub-olunmadığını təyin edə bilər."</string>
+    <string name="permlab_writeSyncSettings" msgid="5408694875793945314">"sinxronizasiyaya davam edir və onu söndürür"</string>
+    <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Tətbiqə hesab üçün sinxronizasiya nizamlarını dəyişməyə icazə verir. Məsələn, bu istifadəçi hesablı Şəxslər tətbiqinin sinxronizasiyasını başlamaq üçün istifadə edilə bilər."</string>
+    <string name="permlab_readSyncStats" msgid="7396577451360202448">"sinxronizasiya statistikasını oxumaq"</string>
+    <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Tətbiqə sync tədbirlərinin tarixçəsi və nə qədər datanın sinx olduğu da daxil olmaqla bərabər, hər hansı bir hesab üçün olan sinx statlarını oxumağa imkan verir."</string>
+    <string name="permlab_subscribedFeedsRead" msgid="4756609637053353318">"abunə olunmuş xəbərləri oxuyur"</string>
+    <string name="permdesc_subscribedFeedsRead" msgid="5557058907906144505">"Tətbiqə hazırda sinxron lentlər haqqında ətraflı məlumat almaq üçün imkan verir."</string>
+    <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"abunə olunmuş xəbərləri yazır"</string>
+    <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Tətbiqə cari sinxronlaşmış lentlərinizə dəyişiklik etmək imkanı verir. Zərərli tətbiqlər sixronlaşmış lentlərinizi dəyişə bilər."</string>
+    <string name="permlab_readDictionary" msgid="4107101525746035718">"lüğətə əlavə etdiyiniz şərtləri oxumaq"</string>
+    <string name="permdesc_readDictionary" msgid="659614600338904243">"Tətbiqə istifadəçinin lüğətdə saxladığı bütün sözləri, adları və frazaları oxumaq icazəsi verir."</string>
+    <string name="permlab_writeDictionary" msgid="2183110402314441106">"istifadəçi lüğətinə sözlər əlavə etmək"</string>
+    <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Tətbiqə istifadəçi lüğətinə yeni sözlər yazmağa imkan verir."</string>
+    <string name="permlab_sdcardRead" product="nosdcard" msgid="8235341515605559677">"qorunmuş yaddaşa daxil olmağa cəhd etmək"</string>
+    <string name="permlab_sdcardRead" product="default" msgid="8235341515605559677">"qorunmuş yaddaşa daxil olmağa cəhd etmək"</string>
+    <string name="permdesc_sdcardRead" product="nosdcard" msgid="3642473292348132072">"Tətbiqə gələcək cihazlarda əlçatımlı olacaq USB yaddaş üçün icazə testi etməyə imkan verir."</string>
+    <string name="permdesc_sdcardRead" product="default" msgid="5914402684685848828">"Tətbiqə gələcək cihazlarda mövcud olacaq SD kart üçün icazəni test etmək üçün imkan verir."</string>
+    <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"USB yaddaşınızın məzmununu dəyişmək və ya silmək"</string>
+    <string name="permlab_sdcardWrite" product="default" msgid="8805693630050458763">"SD kart kontentlərini dəyişir və ya silir"</string>
+    <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"Tətbiqə USB yaddaşa yazmağa imkan verir."</string>
+    <string name="permdesc_sdcardWrite" product="default" msgid="4337417790936632090">"Tətbiqə SD karta yazma icazəsi verir."</string>
+    <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"daxili media yaddaşı kontentini dəyişir/silir"</string>
+    <string name="permdesc_mediaStorageWrite" product="default" msgid="8189160597698529185">"Tətbiqə daxili media yaddaşdakı kontenti redaktə etmək icazəsi verir."</string>
+    <string name="permlab_manageDocs" product="default" msgid="5778318598448849829">"sənəd yaddaşını nizamlayır"</string>
+    <string name="permdesc_manageDocs" product="default" msgid="8704323176914121484">"Tətbiqə sənəd yaddaşını idarə etməyə imkan verir."</string>
+    <string name="permlab_sdcardAccessAll" msgid="8150613823900460576">"bütün istifadəçilərin xarici yaddaşına daxil ol"</string>
+    <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Tətbiqə bütün istifadəçilər üçün olan xarici yaddaşa giriş imkanı verir."</string>
+    <string name="permlab_cache_filesystem" msgid="5656487264819669824">"keş fayl sisteminə girmək"</string>
+    <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Tətbiqə keş fayl sistemini oxumağa və yazmağa icazə verir."</string>
+    <string name="permlab_use_sip" msgid="5986952362795870502">"İnternet zəngləri etmək və ya qəbul etmək"</string>
+    <string name="permdesc_use_sip" msgid="4717632000062674294">"Tətbiqə internet zənglərinin göndərilməsi və qəbul edilməsi üçün SIP servisindən istifadə icazəsi verir."</string>
+    <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"tarixi şəbəkə istifadəsini oxu"</string>
+    <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Tətbiqə xüsusi şəbəkələr və tətbiqlər üçün tarixi şəbəkə istifadəsini oxumağa icazə verir."</string>
+    <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"şəbəkə siyasətini idarə etmək"</string>
+    <string name="permdesc_manageNetworkPolicy" msgid="7537586771559370668">"Tətbiqə şəbəkə qanunlarını və tətbiqin xüsusi qaydalarını idarə etmək imkanı verir."</string>
+    <string name="permlab_modifyNetworkAccounting" msgid="5088217309088729650">"şəbəkə istifadə hesabını dəyişmək"</string>
+    <string name="permdesc_modifyNetworkAccounting" msgid="5443412866746198123">"Tətbiqə şəbəkə istifadəsinin tətbiqlərə qarşı nizamlarını redaktə etməyə icazə verir. Normal tətbiqlər tərəfindən istifadə edilmir."</string>
+    <string name="permlab_markNetworkSocket" msgid="3658527214914959749">"soket işarələrini dəyişin"</string>
+    <string name="permdesc_markNetworkSocket" msgid="7655568433696356578">"Tətbiqə araşdırma üçün soket işarələrini dəyişmək imkanı verir"</string>
+    <string name="permlab_accessNotifications" msgid="7673416487873432268">"bildirişlərə daxil ol"</string>
+    <string name="permdesc_accessNotifications" msgid="458457742683431387">"Tətbiqə bildirişləri əldə etməyə, sınamağa və təmizləməyə imkan verir, buna digər tətbiqlər tərəfindən verilmiş bildirişlər də daxildir."</string>
+    <string name="permlab_bindNotificationListenerService" msgid="7057764742211656654">"bildiriş dinləmə xidmətinə bağlanır"</string>
+    <string name="permdesc_bindNotificationListenerService" msgid="985697918576902986">"Sahibinə yüksək səviyyəli bildiriş dinləmə servisi ilə əlaqə saxlamağa icazə verir. Normal tətbiqlər tərəfindən heç vaxt istənilməməlidir."</string>
+    <string name="permlab_invokeCarrierSetup" msgid="3699600833975117478">"operator xidmətli konfiurasiya tətbiqinə müraciət edin"</string>
+    <string name="permdesc_invokeCarrierSetup" msgid="4159549152529111920">"Sahibinə operator xidmətli tətbiq konfiqurasiyasına  müraciət imkanı verir. Normal tətbiqlər üçün tələb olunmamalıdır."</string>
+    <string name="permlab_accessNetworkConditions" msgid="8206077447838909516">"şəbəkə şəraiti haqqında müşahidələr üçün qulaq asmaq"</string>
+    <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Tətbiqə şəbəkə şəraiti üzrə müşahidələr üçün qulaq asmaq imkanı verir. Normal tətbiqlər üçün heç vaxt lazım olmamalıdır."</string>
+    <string name="policylab_limitPassword" msgid="4497420728857585791">"Parol qaydalarını təyin edin"</string>
+    <string name="policydesc_limitPassword" msgid="3252114203919510394">"Ekran kilidini açan şifrələrin uzunluğunu və onlardakı icazə verilən işarələrə nəzarət edir."</string>
+    <string name="policylab_watchLogin" msgid="914130646942199503">"Ekran kilidi cəhdlərini monitorinq et"</string>
+    <string name="policydesc_watchLogin" product="tablet" msgid="3215729294215070072">"Ekan kilidini açarkən daxil edilmiş yanlış parollara baxın və əgər həddindən çox yanlış parollar daxil edilibsə, planşeti kilidləyin və ya bütün planşet datasını silin."</string>
+    <string name="policydesc_watchLogin" product="default" msgid="5712323091846761073">"Ekan kilidini açarkən daxil edilmiş yanlış parollara baxın və əgər həddindən çox yanlış parollar daxil edilibsə, telefonu kilidləyin və ya bütün telefon datasını silin."</string>
+    <string name="policylab_resetPassword" msgid="2620077191242688955">"Ekran kilid parolunu dəyişin"</string>
+    <string name="policydesc_resetPassword" msgid="605963962301904458">"Ekran kilidini açan şifrəni dəyişdirin."</string>
+    <string name="policylab_forceLock" msgid="2274085384704248431">"Ekranı kilidləyin"</string>
+    <string name="policydesc_forceLock" msgid="1141797588403827138">"Ekranın nə vaxt və necə kilidlənməsinə nəzarət edir."</string>
+    <string name="policylab_wipeData" msgid="3910545446758639713">"Bütün məlumatları silin"</string>
+    <string name="policydesc_wipeData" product="tablet" msgid="4306184096067756876">"Planşetin datasını xəbərdarlıq olmadan, zavod data sıfırlaması ilə silin."</string>
+    <string name="policydesc_wipeData" product="default" msgid="5096895604574188391">"Telefonun datasını xəbərdarlıq olmadan, zavod data sıfırlaması ilə silin"</string>
+    <string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Cihazın qlobal proksisini ayarlayın"</string>
+    <string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Siyasət aktiv olarkən cihazın qlobal proksisini istifadə üçün qurun. Yalnız ilk cihaz admini effektiv qlobal proksini təyin edir."</string>
+    <string name="policylab_expirePassword" msgid="885279151847254056">"Ekran kilidi şifrəsinə son zaman seç"</string>
+    <string name="policydesc_expirePassword" msgid="1729725226314691591">"Ekran kilidi parolunun nə qədər tez-tez dəyişməsini kontrol edin."</string>
+    <string name="policylab_encryptedStorage" msgid="8901326199909132915">"Yaddaş şifrələnməsini ayarlayın"</string>
+    <string name="policydesc_encryptedStorage" msgid="2637732115325316992">"Tətbiq məlumatlarının şifrələnməsini tələb edir."</string>
+    <string name="policylab_disableCamera" msgid="6395301023152297826">"Kameraları dekativ edin"</string>
+    <string name="policydesc_disableCamera" msgid="2306349042834754597">"Bütün cihaz kameralarının istifadəsini əngəllə."</string>
+    <string name="policylab_disableKeyguardFeatures" msgid="266329104542638802">"Klaviatura kilidində funksiyaları deaktiv edin"</string>
+    <string name="policydesc_disableKeyguardFeatures" msgid="3467082272186534614">"Klaviatura kilidində bəzi funksiyaların qarşısını alın."</string>
+  <string-array name="phoneTypes">
+    <item msgid="8901098336658710359">"Əsas səhifə"</item>
+    <item msgid="869923650527136615">"Mobil"</item>
+    <item msgid="7897544654242874543">"İş"</item>
+    <item msgid="1103601433382158155">"İş Faksı"</item>
+    <item msgid="1735177144948329370">"Ev Faksı"</item>
+    <item msgid="603878674477207394">"Peycer"</item>
+    <item msgid="1650824275177931637">"Digər"</item>
+    <item msgid="9192514806975898961">"Şəxsi"</item>
+  </string-array>
+  <string-array name="emailAddressTypes">
+    <item msgid="8073994352956129127">"Ana səhifə"</item>
+    <item msgid="7084237356602625604">"İş"</item>
+    <item msgid="1112044410659011023">"Digər"</item>
+    <item msgid="2374913952870110618">"Fərdi"</item>
+  </string-array>
+  <string-array name="postalAddressTypes">
+    <item msgid="6880257626740047286">"Əsas səhifə"</item>
+    <item msgid="5629153956045109251">"İş"</item>
+    <item msgid="4966604264500343469">"Digər"</item>
+    <item msgid="4932682847595299369">"Düzənləyin"</item>
+  </string-array>
+  <string-array name="imAddressTypes">
+    <item msgid="1738585194601476694">"Əsas səhifə"</item>
+    <item msgid="1359644565647383708">"İş"</item>
+    <item msgid="7868549401053615677">"Digər"</item>
+    <item msgid="3145118944639869809">"Fərdi"</item>
+  </string-array>
+  <string-array name="organizationTypes">
+    <item msgid="7546335612189115615">"İş"</item>
+    <item msgid="4378074129049520373">"Digər"</item>
+    <item msgid="3455047468583965104">"Fərdi"</item>
+  </string-array>
+  <string-array name="imProtocols">
+    <item msgid="8595261363518459565">"AIM"</item>
+    <item msgid="7390473628275490700">"Windows Live"</item>
+    <item msgid="7882877134931458217">"Yahoo"</item>
+    <item msgid="5035376313200585242">"Skype"</item>
+    <item msgid="7532363178459444943">"QQ"</item>
+    <item msgid="3713441034299660749">"Google Söhbət"</item>
+    <item msgid="2506857312718630823">"ICQ"</item>
+    <item msgid="1648797903785279353">"Jabber"</item>
+  </string-array>
+    <string name="phoneTypeCustom" msgid="1644738059053355820">"Şəxsi"</string>
+    <string name="phoneTypeHome" msgid="2570923463033985887">"Ev"</string>
+    <string name="phoneTypeMobile" msgid="6501463557754751037">"Mobil"</string>
+    <string name="phoneTypeWork" msgid="8863939667059911633">"İş"</string>
+    <string name="phoneTypeFaxWork" msgid="3517792160008890912">"İş Faksı"</string>
+    <string name="phoneTypeFaxHome" msgid="2067265972322971467">"Ev Faksı"</string>
+    <string name="phoneTypePager" msgid="7582359955394921732">"Peycer"</string>
+    <string name="phoneTypeOther" msgid="1544425847868765990">"Digər"</string>
+    <string name="phoneTypeCallback" msgid="2712175203065678206">"Geriyə zəng"</string>
+    <string name="phoneTypeCar" msgid="8738360689616716982">"Avtomobil"</string>
+    <string name="phoneTypeCompanyMain" msgid="540434356461478916">"Şirkət"</string>
+    <string name="phoneTypeIsdn" msgid="8022453193171370337">"ISDN"</string>
+    <string name="phoneTypeMain" msgid="6766137010628326916">"Əsas"</string>
+    <string name="phoneTypeOtherFax" msgid="8587657145072446565">"Digər faks"</string>
+    <string name="phoneTypeRadio" msgid="4093738079908667513">"Radio"</string>
+    <string name="phoneTypeTelex" msgid="3367879952476250512">"Teleks"</string>
+    <string name="phoneTypeTtyTdd" msgid="8606514378585000044">"TTY TDD"</string>
+    <string name="phoneTypeWorkMobile" msgid="1311426989184065709">"Mobil iş telefonu"</string>
+    <string name="phoneTypeWorkPager" msgid="649938731231157056">"İş Peyceri"</string>
+    <string name="phoneTypeAssistant" msgid="5596772636128562884">"Köməkçi"</string>
+    <string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
+    <string name="eventTypeCustom" msgid="7837586198458073404">"Fərdi"</string>
+    <string name="eventTypeBirthday" msgid="2813379844211390740">"Doğum günü"</string>
+    <string name="eventTypeAnniversary" msgid="3876779744518284000">"İldönümü"</string>
+    <string name="eventTypeOther" msgid="7388178939010143077">"Digər"</string>
+    <string name="emailTypeCustom" msgid="8525960257804213846">"Fərdi"</string>
+    <string name="emailTypeHome" msgid="449227236140433919">"Əsas səhifə"</string>
+    <string name="emailTypeWork" msgid="3548058059601149973">"İş"</string>
+    <string name="emailTypeOther" msgid="2923008695272639549">"Digər"</string>
+    <string name="emailTypeMobile" msgid="119919005321166205">"Mobil"</string>
+    <string name="postalTypeCustom" msgid="8903206903060479902">"Fərdi"</string>
+    <string name="postalTypeHome" msgid="8165756977184483097">"Əsas səhifə"</string>
+    <string name="postalTypeWork" msgid="5268172772387694495">"İş"</string>
+    <string name="postalTypeOther" msgid="2726111966623584341">"Digər"</string>
+    <string name="imTypeCustom" msgid="2074028755527826046">"Fərdi"</string>
+    <string name="imTypeHome" msgid="6241181032954263892">"Ana səhifə"</string>
+    <string name="imTypeWork" msgid="1371489290242433090">"İş"</string>
+    <string name="imTypeOther" msgid="5377007495735915478">"Digər"</string>
+    <string name="imProtocolCustom" msgid="6919453836618749992">"Şəxsi"</string>
+    <string name="imProtocolAim" msgid="7050360612368383417">"AIM"</string>
+    <string name="imProtocolMsn" msgid="144556545420769442">"Windows Live"</string>
+    <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
+    <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
+    <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
+    <string name="imProtocolGoogleTalk" msgid="493902321140277304">"Görüşlər"</string>
+    <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
+    <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
+    <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
+    <string name="orgTypeWork" msgid="29268870505363872">"İş"</string>
+    <string name="orgTypeOther" msgid="3951781131570124082">"Digər"</string>
+    <string name="orgTypeCustom" msgid="225523415372088322">"Fərdi"</string>
+    <string name="relationTypeCustom" msgid="3542403679827297300">"Şəxsi"</string>
+    <string name="relationTypeAssistant" msgid="6274334825195379076">"Köməkçi"</string>
+    <string name="relationTypeBrother" msgid="8757913506784067713">"Qardaş"</string>
+    <string name="relationTypeChild" msgid="1890746277276881626">"Uşaq"</string>
+    <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Ev yoldaşı"</string>
+    <string name="relationTypeFather" msgid="5228034687082050725">"Ata"</string>
+    <string name="relationTypeFriend" msgid="7313106762483391262">"Dost"</string>
+    <string name="relationTypeManager" msgid="6365677861610137895">"Müdir"</string>
+    <string name="relationTypeMother" msgid="4578571352962758304">"Ana"</string>
+    <string name="relationTypeParent" msgid="4755635567562925226">"Valideyn"</string>
+    <string name="relationTypePartner" msgid="7266490285120262781">"Ortaq"</string>
+    <string name="relationTypeReferredBy" msgid="101573059844135524">"Dəvət edən"</string>
+    <string name="relationTypeRelative" msgid="1799819930085610271">"Qohum"</string>
+    <string name="relationTypeSister" msgid="1735983554479076481">"Bacı"</string>
+    <string name="relationTypeSpouse" msgid="394136939428698117">"Həyat yoldaşı"</string>
+    <string name="sipAddressTypeCustom" msgid="2473580593111590945">"Fərdi"</string>
+    <string name="sipAddressTypeHome" msgid="6093598181069359295">"Əsas səhifə"</string>
+    <string name="sipAddressTypeWork" msgid="6920725730797099047">"İş"</string>
+    <string name="sipAddressTypeOther" msgid="4408436162950119849">"Digər"</string>
+    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"PİN kodu daxil edin"</string>
+    <string name="keyguard_password_enter_puk_code" msgid="4800725266925845333">"PUK və yeni PİN kod daxil edin"</string>
+    <string name="keyguard_password_enter_puk_prompt" msgid="1341112146710087048">"PUK kod"</string>
+    <string name="keyguard_password_enter_pin_prompt" msgid="8027680321614196258">"Yeni PIN kodu"</string>
+    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Şifrə daxil etmək üçün toxunun"</font></string>
+    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Kilidi açmaq üçün parol yazın"</string>
+    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Kilidi açmaq üçün PIN daxil edin"</string>
+    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Yanlış PIN kodu."</string>
+    <string name="keyguard_label_text" msgid="861796461028298424">"Kilidi açmaq üçün Menyu, sonra 0 basın."</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="696192103195090970">"Təcili nömrə"</string>
+    <string name="lockscreen_carrier_default" msgid="8963839242565653192">"Xidmət yoxdur."</string>
+    <string name="lockscreen_screen_locked" msgid="7288443074806832904">"Ekran kilidlənib."</string>
+    <string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Təcili zəng kilidini açmaq və ya yerləşdirmək üçün Menyu düyməsinə basın."</string>
+    <string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Kilidi açmaq üçün Menyu düyməsinə basın."</string>
+    <string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Kilidi açmaq üçün model çəkin"</string>
+    <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Təcili zəng"</string>
+    <string name="lockscreen_return_to_call" msgid="5244259785500040021">"Zəngə qayıt"</string>
+    <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Düzdür!"</string>
+    <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Bir də cəhd edin"</string>
+    <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Bir daha cəhd et"</string>
+    <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Sifət kilidi cəhdləriniz bitdi"</string>
+    <string name="lockscreen_plugged_in" msgid="8057762828355572315">"Batareya yığılır, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
+    <string name="lockscreen_charged" msgid="321635745684060624">"Dolub"</string>
+    <string name="lockscreen_battery_short" msgid="4477264849386850266">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
+    <string name="lockscreen_low_battery" msgid="1482873981919249740">"Elektrikə qoşun."</string>
+    <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM kart yoxdur."</string>
+    <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Planşetdə SIM kart yoxdur."</string>
+    <string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Telefonda SİM kart yoxdur."</string>
+    <string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"SİM kart daxil edin."</string>
+    <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SİM kart yoxdur və ya oxuna bilinmir. SİM kart daxil edin."</string>
+    <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Yararsız SIM kart."</string>
+    <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Sizin SİM kartınız daimi olaraq deaktivləşib.\n Başqa SİM kart üçün simsiz xidmət provayderinizə müraciət edin."</string>
+    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Əvvəlki trek düyməsi"</string>
+    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Növbəti trek düyməsi"</string>
+    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Pauza düyməsi"</string>
+    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Oxutma düyməsi"</string>
+    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Dayandırma düyməsi"</string>
+    <string name="emergency_calls_only" msgid="6733978304386365407">"Yalnız təcili zənglər"</string>
+    <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Şəbəkə kilidlidir"</string>
+    <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM kart PUK ilə kilidlənib."</string>
+    <string name="lockscreen_sim_puk_locked_instructions" msgid="8127916255245181063">"İstifadəçi Təlimatlarına baxın və ya Müştəri Xidmətlərinə müraciət edin."</string>
+    <string name="lockscreen_sim_locked_message" msgid="8066660129206001039">"SIM kart kilidlənib."</string>
+    <string name="lockscreen_sim_unlock_progress_dialog_message" msgid="595323214052881264">"SİM kartın kilidi açılır..."</string>
+    <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6481623830344107222">"Siz kilid modelini <xliff:g id="NUMBER_0">%d</xliff:g> dəfə yanlış çəkdiniz. \n\n <xliff:g id="NUMBER_1">%d</xliff:g> saniyə içində yenidən sınayın."</string>
+    <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="2725973286239344555">"Şifrənizi <xliff:g id="NUMBER_0">%d</xliff:g> dəfə yanlış daxil etdiniz.\n\n <xliff:g id="NUMBER_1">%d</xliff:g> saniyə ərzində yenidən yoxlayın"</string>
+    <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6216672706545696955">"Siz PIN nömrənizi <xliff:g id="NUMBER_0">%d</xliff:g> dəfə yanlış daxil etdiniz. \n \n <xliff:g id="NUMBER_1">%d</xliff:g> saniyə içində təkrar sınayın."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="9191611984625460820">"Siz kilidi açmaq üçün şablonu <xliff:g id="NUMBER_0">%d</xliff:g> dəfə səhv çəkdiniz. <xliff:g id="NUMBER_1">%d</xliff:g> daha uğursuz cəhddən sonra planşetin kilidini Google hesabınıza daxil olmaqla açmağınız istəniləcək.\n\n <xliff:g id="NUMBER_2">%d</xliff:g> saniyə ərzində bir daha yoxlayın."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="2590227559763762751">"Siz kilidi açmaq üçün şablonu <xliff:g id="NUMBER_0">%d</xliff:g> dəfə səhv çəkdiniz. <xliff:g id="NUMBER_1">%d</xliff:g> daha uğursuz cəhddən sonra planşetin kilidini Google hesabınıza daxil olmaqla açmağınız tələb olunacaq.\n\n <xliff:g id="NUMBER_2">%d</xliff:g> saniyə ərzində bir daha yoxlayın."</string>
+    <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="6128106399745755604">"Siz planşet kilidini açmaq üçün <xliff:g id="NUMBER_0">%d</xliff:g> dəfə uğursuz cəhd etmisiniz. <xliff:g id="NUMBER_1">%d</xliff:g> dəfə də uğursuz cəhd etsəniz, planşet fabrik ayarlarına sıfırlanacaq və bütün məlumatlarınız itəcək."</string>
+    <string name="lockscreen_failed_attempts_almost_at_wipe" product="default" msgid="8603565142156826565">"Siz telefon kilidini açmaq üçün <xliff:g id="NUMBER_0">%d</xliff:g> dəfə uğursuz cəhd etmisiniz. <xliff:g id="NUMBER_1">%d</xliff:g> dəfə də uğursuz cəhd etsəniz, telefon zavod ayarlarına sıfırlanacaq və bütün məlumatlarınız itəcək."</string>
+    <string name="lockscreen_failed_attempts_now_wiping" product="tablet" msgid="280873516493934365">"Siz planşetin kilidini açmaq üçün <xliff:g id="NUMBER">%d</xliff:g> yanlış cəhd etmisiniz. Planşet artıq defolt zavod halına sıfırlanacaq."</string>
+    <string name="lockscreen_failed_attempts_now_wiping" product="default" msgid="3025504721764922246">"Siz telefonun kilidini açmaq üçün <xliff:g id="NUMBER">%d</xliff:g> dəfə səhv cəhd etdiniz. Telefonunuz indi zavod nizamlarına yenilənəcək."</string>
+    <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"<xliff:g id="NUMBER">%d</xliff:g> saniyə ərzində bir daha cəhd edin."</string>
+    <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"Şablonu unutdunuz?"</string>
+    <string name="lockscreen_glogin_forgot_pattern" msgid="2588521501166032747">"Hesab kilid açma"</string>
+    <string name="lockscreen_glogin_too_many_attempts" msgid="2751368605287288808">"Həddindən çox cəhd edildi!"</string>
+    <string name="lockscreen_glogin_instructions" msgid="3931816256100707784">"Kilidi açmaq üçün Google hesabınız ilə daxil olun."</string>
+    <string name="lockscreen_glogin_username_hint" msgid="8846881424106484447">"İstifadəçi adı (e-poçt)"</string>
+    <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Şifrə"</string>
+    <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Daxil olun"</string>
+    <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Yanlış istifadəçi adı və parol."</string>
+    <string name="lockscreen_glogin_account_recovery_hint" msgid="1696924763690379073">"İstifadəçi adınızı və ya parolunuzu unutmusunuz?\n "<b>"google.com/accounts/recovery"</b>" linkinə daxil olun."</string>
+    <string name="lockscreen_glogin_checking_password" msgid="7114627351286933867">"Yoxlanır..."</string>
+    <string name="lockscreen_unlock_label" msgid="737440483220667054">"Kilidi aç"</string>
+    <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Səs açıqdır"</string>
+    <string name="lockscreen_sound_off_label" msgid="996822825154319026">"Səs sönülüdür"</string>
+    <string name="lockscreen_access_pattern_start" msgid="3941045502933142847">"Model başlandı"</string>
+    <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Model təmizləndi"</string>
+    <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Xana əlavə edildi"</string>
+    <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Model tamamlandı"</string>
+    <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. Widget %2$d of %3$d."</string>
+    <string name="keyguard_accessibility_add_widget" msgid="8273277058724924654">"Widget əlavə edin."</string>
+    <string name="keyguard_accessibility_widget_empty_slot" msgid="1281505703307930757">"Boş"</string>
+    <string name="keyguard_accessibility_unlock_area_expanded" msgid="2278106022311170299">"Kilidi açma sahəsi genişləndi."</string>
+    <string name="keyguard_accessibility_unlock_area_collapsed" msgid="6366992066936076396">"Kilidi açma sahəsi çökdü."</string>
+    <string name="keyguard_accessibility_widget" msgid="6527131039741808240">"<xliff:g id="WIDGET_INDEX">%1$s</xliff:g> vidcet."</string>
+    <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"İstifadəçi selektoru"</string>
+    <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Status"</string>
+    <string name="keyguard_accessibility_camera" msgid="8904231194181114603">"Kamera"</string>
+    <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Media kontrolları"</string>
+    <string name="keyguard_accessibility_widget_reorder_start" msgid="8736853615588828197">"Yenidən sıralama vidceti başladıldı."</string>
+    <string name="keyguard_accessibility_widget_reorder_end" msgid="7170190950870468320">"Vidcetin təkrar sifarişi sona çatdı."</string>
+    <string name="keyguard_accessibility_widget_deleted" msgid="4426204263929224434">"Vidcet <xliff:g id="WIDGET_INDEX">%1$s</xliff:g> silindi."</string>
+    <string name="keyguard_accessibility_expand_lock_area" msgid="519859720934178024">"Kilidi açma sahəsini genişləndir."</string>
+    <string name="keyguard_accessibility_slide_unlock" msgid="2959928478764697254">"Sürüşdürmə kilidi."</string>
+    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Kild açma modeli."</string>
+    <string name="keyguard_accessibility_face_unlock" msgid="4817282543351718535">"Sifət Kilidi"</string>
+    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Pin kilid açması."</string>
+    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Şifrə kilidi."</string>
+    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Model sahəsi."</string>
+    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Sürüşdürmə sahəsi."</string>
+    <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string>
+    <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"ABC"</string>
+    <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string>
+    <string name="granularity_label_character" msgid="7336470535385009523">"simvol"</string>
+    <string name="granularity_label_word" msgid="7075570328374918660">"söz"</string>
+    <string name="granularity_label_link" msgid="5815508880782488267">"link"</string>
+    <string name="granularity_label_line" msgid="5764267235026120888">"xətt"</string>
+    <string name="hour_ampm" msgid="4584338083529355982">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
+    <string name="hour_cap_ampm" msgid="2083465992940444366">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
+    <string name="factorytest_failed" msgid="5410270329114212041">"Zavod testi alınmadı"</string>
+    <string name="factorytest_not_system" msgid="4435201656767276723">"Bu FACTORY_TEST fəaliyyəti yalnızca/sistemdə/tətbiqdə quraşdırılmış paketlər üçün dəstəklənir."</string>
+    <string name="factorytest_no_action" msgid="872991874799998561">"FACTORY_TEST əməliyyatını təsdiqləyən heç bir paket tapılmadı."</string>
+    <string name="factorytest_reboot" msgid="6320168203050791643">"Yenidən yükləyin"</string>
+    <string name="js_dialog_title" msgid="1987483977834603872">"\"<xliff:g id="TITLE">%s</xliff:g>\"dakı səhifədə deyilir:"</string>
+    <string name="js_dialog_title_default" msgid="6961903213729667573">"JavaScript"</string>
+    <string name="js_dialog_before_unload_title" msgid="2619376555525116593">"Naviqasiyanı Təsdiq edin"</string>
+    <string name="js_dialog_before_unload_positive_button" msgid="3112752010600484130">"Bu Səhifəni Tərk edin"</string>
+    <string name="js_dialog_before_unload_negative_button" msgid="5614861293026099715">"Bu səhifədə qalın"</string>
+    <string name="js_dialog_before_unload" msgid="3468816357095378590">"<xliff:g id="MESSAGE">%s</xliff:g>\n\nBu səhifədən kənara naviqasiya etmək istədiyinizə əminsiniz mi?"</string>
+    <string name="save_password_label" msgid="6860261758665825069">"Təsdiqlə"</string>
+    <string name="double_tap_toast" msgid="4595046515400268881">"Məsləhət: Böyütmək və kiçiltmək üçün iki dəfə tıklayın."</string>
+    <string name="autofill_this_form" msgid="4616758841157816676">"Avtodoldurma"</string>
+    <string name="setup_autofill" msgid="7103495070180590814">"AvtoDoldurmanı ayarla"</string>
+    <string name="autofill_address_name_separator" msgid="6350145154779706772">" "</string>
+    <string name="autofill_address_summary_name_format" msgid="3268041054899214945">"$1$2$3"</string>
+    <string name="autofill_address_summary_separator" msgid="7483307893170324129">", "</string>
+    <string name="autofill_address_summary_format" msgid="4874459455786827344">"$1$2$3"</string>
+    <string name="autofill_province" msgid="2231806553863422300">"Vilayət"</string>
+    <string name="autofill_postal_code" msgid="4696430407689377108">"Poçt kodu"</string>
+    <string name="autofill_state" msgid="6988894195520044613">"Dövlət"</string>
+    <string name="autofill_zip_code" msgid="8697544592627322946">"Poçt indeksi"</string>
+    <string name="autofill_county" msgid="237073771020362891">"Ölkə"</string>
+    <string name="autofill_island" msgid="4020100875984667025">"Ada"</string>
+    <string name="autofill_district" msgid="8400735073392267672">"Sahə"</string>
+    <string name="autofill_department" msgid="5343279462564453309">"Departament"</string>
+    <string name="autofill_prefecture" msgid="2028499485065800419">"Prefektura"</string>
+    <string name="autofill_parish" msgid="8202206105468820057">"Pariş"</string>
+    <string name="autofill_area" msgid="3547409050889952423">"Sahə"</string>
+    <string name="autofill_emirate" msgid="2893880978835698818">"Əmirlik"</string>
+    <string name="permlab_readHistoryBookmarks" msgid="3775265775405106983">"Veb əlfəcinlərinizi və tarixçələrinizi oxumaq"</string>
+    <string name="permdesc_readHistoryBookmarks" msgid="8462378226600439658">"Tətbiqə Brauzerin daxil olduğu bütün linkləri və bütün Brauzer əlfəcinlərini oxumaq imkanı verir. Qeyd: bu icazə veb brauzer imkanları olan üçüncü tərəf brazuerləri və digər tətbiqlər tərəfindən yerinə yetirilə bilməz."</string>
+    <string name="permlab_writeHistoryBookmarks" msgid="3714785165273314490">"veb əlfəcinləri və tarixçəsi yazmaq"</string>
+    <string name="permdesc_writeHistoryBookmarks" product="tablet" msgid="6825527469145760922">"Tətbiqə planşetinizdəki brauzer tarixini və əlfəcinləri redaktə etmək icazəsi verir. Bu tətbizə brauzer məlumatlarını silmək və ya redaktə etmək imkanı verə bilər. Qeyd: Bu icazə 3-cü partiya brauzerlərə və ya veb brauzing xüsusiyyətli digər tətbiqlərə şamil olunmaya bilər."</string>
+    <string name="permdesc_writeHistoryBookmarks" product="default" msgid="8497389531014185509">"Tətbiqə Brauzer tarixçəsi və telefonunuzda saxlanılan əlfəcinlərə dəyişiklik etmək imkanı verir. Bununla tətbiqlə Brauzer datanızı silə və ya dəyişdirə bilər. Qeyd: bu icazə veb brauzer imkanları olan üçüncü tərəf brazuerləri və digər tətbiqlər tərəfindən yerinə yetirilə bilməz."</string>
+    <string name="permlab_setAlarm" msgid="1379294556362091814">"siqnal qurur"</string>
+    <string name="permdesc_setAlarm" msgid="316392039157473848">"Tətbiqə quraşdırlmış zəngli saata alarm ayarlamağa imkan verir. Bəzi zəngli saat tətbiqləri bu özəlliyi dəstəkləməyə bilər."</string>
+    <string name="permlab_addVoicemail" msgid="5525660026090959044">"Səsli poçt əlavə et"</string>
+    <string name="permdesc_addVoicemail" msgid="6604508651428252437">"Tətbiqə səsli poçt qutunuza mesaj əlavə etməyə imkan verir."</string>
+    <string name="permlab_writeGeolocationPermissions" msgid="5962224158955273932">"Brauzerin geolokasiya icazələrini dəyişir"</string>
+    <string name="permdesc_writeGeolocationPermissions" msgid="1083743234522638747">"Tətbiqə Brauzerin geolokasiya icazələrini dəyişməyə imkan verir. Zərərli tətbiqlər bundan istifadə edərək məkan məlumatlarını təsadüfi saytlara göndərə bilər."</string>
+    <string name="permlab_packageVerificationAgent" msgid="5568139100645829117">"paketləri təsdiqlə"</string>
+    <string name="permdesc_packageVerificationAgent" msgid="8437590190990843381">"Tətbiqə paketin quraşdırılabilən olmasını yoxlamağa imkan verir."</string>
+    <string name="permlab_bindPackageVerifier" msgid="4187786793360326654">"paket doğrulayıcıya bağlanır"</string>
+    <string name="permdesc_bindPackageVerifier" msgid="3180741773233862126">"Sahibinə paket yoxlayıcılarına sorğu göndərmək icazəsi verir. Normal tətbiqlər tərəfindən heç vaxt istənilməməlidir."</string>
+    <string name="permlab_serialPort" msgid="546083327654631076">"serial porta çıxır"</string>
+    <string name="permdesc_serialPort" msgid="2991639985224598193">"Sahibinə SerialManager API vasitəsilə serial portlara icazə izni verir."</string>
+    <string name="permlab_accessContentProvidersExternally" msgid="5077774297943409285">"xarici kontent provayderlərinə giriş"</string>
+    <string name="permdesc_accessContentProvidersExternally" msgid="4544346486697853685">"Məzmun provayderlərinə örtükdən daxil olmaq üçün cihaz sahibinə imkan verir. Normal tətbiqlər üçün lazım deyil."</string>
+    <string name="permlab_updateLock" msgid="3527558366616680889">"avtomatik cihaz yenilənmələrini pozur"</string>
+    <string name="permdesc_updateLock" msgid="1655625832166778492">"Sahibinə yeni versiyaya yenilənmək üçün nə vaxt qeyri-interaktiv reboot məlumatını sistemə təklif etmə icazəsi verir."</string>
+    <string name="save_password_message" msgid="767344687139195790">"Brauzerin bu şifrəni yadda saxlamasını istəyirsiz?"</string>
+    <string name="save_password_notnow" msgid="6389675316706699758">"İndi yox"</string>
+    <string name="save_password_remember" msgid="6491879678996749466">"Yadda saxla"</string>
+    <string name="save_password_never" msgid="8274330296785855105">"Heç vaxt"</string>
+    <string name="open_permission_deny" msgid="7374036708316629800">"Bu səhifəni açmaq üçün icazəniz yoxdur."</string>
+    <string name="text_copied" msgid="4985729524670131385">"Mətn panoya kopyalandı."</string>
+    <string name="more_item_label" msgid="4650918923083320495">"Daha çox"</string>
+    <string name="prepend_shortcut_label" msgid="2572214461676015642">"Menyu+"</string>
+    <string name="menu_space_shortcut_label" msgid="2410328639272162537">"boşluq"</string>
+    <string name="menu_enter_shortcut_label" msgid="2743362785111309668">"daxil olun"</string>
+    <string name="menu_delete_shortcut_label" msgid="3658178007202748164">"sil"</string>
+    <string name="search_go" msgid="8298016669822141719">"Axtar"</string>
+    <string name="searchview_description_search" msgid="6749826639098512120">"Axtarış"</string>
+    <string name="searchview_description_query" msgid="5911778593125355124">"Axtarış sorğusu"</string>
+    <string name="searchview_description_clear" msgid="1330281990951833033">"Sorğunu təmizlə"</string>
+    <string name="searchview_description_submit" msgid="2688450133297983542">"Sorğunu göndərin"</string>
+    <string name="searchview_description_voice" msgid="2453203695674994440">"Səsli axtarış"</string>
+    <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Toxunaraq Kəşf et funksiyası aktiv edilsin?"</string>
+    <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> Toxunaraq Kəşf Et rejimini aktivləşdirmək istəyir. Toxunaraq Kəşf Et açıldığı zaman, barmağınızın altında nə olduğu haqda olan təsvirləri eşidə və ya görə bilərsiniz və yaplanşetdə insanlarla əlaqəyə keçmək üçün jestlər həyata keçirə bilərsiniz."</string>
+    <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> Toxunaraq Kəşf Et rejimini aktivləşdirmək istəyir. Toxunaraq Kəşf Et açıldığı zaman, barmağınızın altında nə olduğu haqda olan təsvirləri eşidə və ya görə bilərsiniz və ya telefonda insanlarla əlaqəyə keçmək üçün jestlər həyata keçirə bilərsiniz"</string>
+    <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 ay öncə"</string>
+    <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"1 ay əvvəl"</string>
+  <plurals name="num_seconds_ago">
+    <item quantity="one" msgid="4869870056547896011">"1 saniyə əvvəl"</item>
+    <item quantity="other" msgid="3903706804349556379">"<xliff:g id="COUNT">%d</xliff:g> saniyə əvvəl"</item>
+  </plurals>
+  <plurals name="num_minutes_ago">
+    <item quantity="one" msgid="3306787433088810191">"1 dəqiqə əvvəl"</item>
+    <item quantity="other" msgid="2176942008915455116">"<xliff:g id="COUNT">%d</xliff:g> dəqiqə əvvəl"</item>
+  </plurals>
+  <plurals name="num_hours_ago">
+    <item quantity="one" msgid="9150797944610821849">"1 saat əvvəl"</item>
+    <item quantity="other" msgid="2467273239587587569">"<xliff:g id="COUNT">%d</xliff:g> saat əvvəl"</item>
+  </plurals>
+  <plurals name="last_num_days">
+    <item quantity="other" msgid="3069992808164318268">"Son <xliff:g id="COUNT">%d</xliff:g> gün"</item>
+  </plurals>
+    <string name="last_month" msgid="3959346739979055432">"Keçən ay"</string>
+    <string name="older" msgid="5211975022815554840">"Köhnə"</string>
+  <plurals name="num_days_ago">
+    <item quantity="one" msgid="861358534398115820">"dünən"</item>
+    <item quantity="other" msgid="2479586466153314633">"<xliff:g id="COUNT">%d</xliff:g> gün əvvəl"</item>
+  </plurals>
+  <plurals name="in_num_seconds">
+    <item quantity="one" msgid="2729745560954905102">"1 saniyə ərzində"</item>
+    <item quantity="other" msgid="1241926116443974687">"<xliff:g id="COUNT">%d</xliff:g> saniyə içində"</item>
+  </plurals>
+  <plurals name="in_num_minutes">
+    <item quantity="one" msgid="8793095251325200395">"1 dəqiqə içində"</item>
+    <item quantity="other" msgid="3330713936399448749">"<xliff:g id="COUNT">%d</xliff:g> dəqiqə ərzində"</item>
+  </plurals>
+  <plurals name="in_num_hours">
+    <item quantity="one" msgid="7164353342477769999">"1 saata"</item>
+    <item quantity="other" msgid="547290677353727389">"<xliff:g id="COUNT">%d</xliff:g> saata"</item>
+  </plurals>
+  <plurals name="in_num_days">
+    <item quantity="one" msgid="5413088743009839518">"sabah"</item>
+    <item quantity="other" msgid="5109449375100953247">"<xliff:g id="COUNT">%d</xliff:g> gün ərzində"</item>
+  </plurals>
+  <plurals name="abbrev_num_seconds_ago">
+    <item quantity="one" msgid="1849036840200069118">"1 saniyə əvvəl"</item>
+    <item quantity="other" msgid="3699169366650930415">"<xliff:g id="COUNT">%d</xliff:g> san əvvəl"</item>
+  </plurals>
+  <plurals name="abbrev_num_minutes_ago">
+    <item quantity="one" msgid="6361490147113871545">"1 dəqiqə əvvəl"</item>
+    <item quantity="other" msgid="851164968597150710">"<xliff:g id="COUNT">%d</xliff:g> dəqiqə əvvəl"</item>
+  </plurals>
+  <plurals name="abbrev_num_hours_ago">
+    <item quantity="one" msgid="4796212039724722116">"1 saat əvvəl"</item>
+    <item quantity="other" msgid="6889970745748538901">"<xliff:g id="COUNT">%d</xliff:g> saat əvvəl"</item>
+  </plurals>
+  <plurals name="abbrev_num_days_ago">
+    <item quantity="one" msgid="8463161711492680309">"dünən"</item>
+    <item quantity="other" msgid="3453342639616481191">"<xliff:g id="COUNT">%d</xliff:g> gün əvvəl"</item>
+  </plurals>
+  <plurals name="abbrev_in_num_seconds">
+    <item quantity="one" msgid="5842225370795066299">"1 san ərzində"</item>
+    <item quantity="other" msgid="5495880108825805108">"<xliff:g id="COUNT">%d</xliff:g> san ərzində"</item>
+  </plurals>
+  <plurals name="abbrev_in_num_minutes">
+    <item quantity="one" msgid="562786149928284878">"1 dəq ərzində"</item>
+    <item quantity="other" msgid="4216113292706568726">"<xliff:g id="COUNT">%d</xliff:g> dəqiqəyə"</item>
+  </plurals>
+  <plurals name="abbrev_in_num_hours">
+    <item quantity="one" msgid="3274708118124045246">"1 saat ərzində"</item>
+    <item quantity="other" msgid="3705373766798013406">"<xliff:g id="COUNT">%d</xliff:g> saata"</item>
+  </plurals>
+  <plurals name="abbrev_in_num_days">
+    <item quantity="one" msgid="2178576254385739855">"sabah"</item>
+    <item quantity="other" msgid="2973062968038355991">"<xliff:g id="COUNT">%d</xliff:g> günə"</item>
+  </plurals>
+    <string name="preposition_for_date" msgid="9093949757757445117">"<xliff:g id="DATE">%s</xliff:g> tarixində"</string>
+    <string name="preposition_for_time" msgid="5506831244263083793">"saat <xliff:g id="TIME">%s</xliff:g>"</string>
+    <string name="preposition_for_year" msgid="5040395640711867177">"<xliff:g id="YEAR">%s</xliff:g> ilində"</string>
+    <string name="day" msgid="8144195776058119424">"gün"</string>
+    <string name="days" msgid="4774547661021344602">"günlər"</string>
+    <string name="hour" msgid="2126771916426189481">"saat"</string>
+    <string name="hours" msgid="894424005266852993">"saatlar"</string>
+    <string name="minute" msgid="9148878657703769868">"dəq."</string>
+    <string name="minutes" msgid="5646001005827034509">"dəqiqə"</string>
+    <string name="second" msgid="3184235808021478">"sn"</string>
+    <string name="seconds" msgid="3161515347216589235">"san"</string>
+    <string name="week" msgid="5617961537173061583">"həftə"</string>
+    <string name="weeks" msgid="6509623834583944518">"həftə"</string>
+    <string name="year" msgid="4001118221013892076">"il"</string>
+    <string name="years" msgid="6881577717993213522">"il"</string>
+  <plurals name="duration_seconds">
+    <item quantity="one" msgid="6962015528372969481">"1 saniyə"</item>
+    <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> saniyə"</item>
+  </plurals>
+  <plurals name="duration_minutes">
+    <item quantity="one" msgid="4915414002546085617">"1 dəqiqə"</item>
+    <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> dəqiqə"</item>
+  </plurals>
+  <plurals name="duration_hours">
+    <item quantity="one" msgid="8917467491248809972">"1 saat"</item>
+    <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> saat"</item>
+  </plurals>
+    <string name="VideoView_error_title" msgid="3534509135438353077">"Video problemi"</string>
+    <string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Bu video bu cihaza strim olunmaq üçün uyğun deyil."</string>
+    <string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Bu video oxumur"</string>
+    <string name="VideoView_error_button" msgid="2822238215100679592">"OK"</string>
+    <string name="relative_time" msgid="1818557177829411417">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
+    <string name="noon" msgid="7245353528818587908">"günorta"</string>
+    <string name="Noon" msgid="3342127745230013127">"Günorta"</string>
+    <string name="midnight" msgid="7166259508850457595">"gecəyarı"</string>
+    <string name="Midnight" msgid="5630806906897892201">"Gecəyarı"</string>
+    <string name="elapsed_time_short_format_mm_ss" msgid="4431555943828711473">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
+    <string name="elapsed_time_short_format_h_mm_ss" msgid="1846071997616654124">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
+    <string name="selectAll" msgid="6876518925844129331">"Hamısını seç"</string>
+    <string name="cut" msgid="3092569408438626261">"Kəs"</string>
+    <string name="copy" msgid="2681946229533511987">"Kopyala"</string>
+    <string name="paste" msgid="5629880836805036433">"Yerləşdir"</string>
+    <string name="replace" msgid="5781686059063148930">"Əvəz et..."</string>
+    <string name="delete" msgid="6098684844021697789">"Sil"</string>
+    <string name="copyUrl" msgid="2538211579596067402">"URL kopyala"</string>
+    <string name="selectTextMode" msgid="1018691815143165326">"Mətn seçin"</string>
+    <string name="textSelectionCABTitle" msgid="5236850394370820357">"Mətn seçimi"</string>
+    <string name="addToDictionary" msgid="4352161534510057874">"Lüğətə əlavə et"</string>
+    <string name="deleteText" msgid="6979668428458199034">"Sil"</string>
+    <string name="inputMethod" msgid="1653630062304567879">"Daxiletmə metodu"</string>
+    <string name="editTextMenuTitle" msgid="4909135564941815494">"Mətn əməliyyatları"</string>
+    <string name="low_internal_storage_view_title" msgid="5576272496365684834">"Yaddaş yeri bitir"</string>
+    <string name="low_internal_storage_view_text" msgid="6640505817617414371">"Bəzi sistem funksiyaları işləməyə bilər"</string>
+    <string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> işlənir"</string>
+    <string name="app_running_notification_text" msgid="4653586947747330058">"Daha çox məlumat üçün və ya tətbiqi dayandırmaq üçün toxunun."</string>
+    <string name="ok" msgid="5970060430562524910">"OK"</string>
+    <string name="cancel" msgid="6442560571259935130">"Ləğv et"</string>
+    <string name="yes" msgid="5362982303337969312">"OK"</string>
+    <string name="no" msgid="5141531044935541497">"Ləğv et"</string>
+    <string name="dialog_alert_title" msgid="2049658708609043103">"Diqqət"</string>
+    <string name="loading" msgid="7933681260296021180">"Yüklənir…"</string>
+    <string name="capital_on" msgid="1544682755514494298">"AÇIQ"</string>
+    <string name="capital_off" msgid="6815870386972805832">"QAPALI"</string>
+    <string name="whichApplication" msgid="4533185947064773386">"Əməliyyatı tamamlayın:"</string>
+    <string name="alwaysUse" msgid="4583018368000610438">"Bu fəaliyyət üçün defolt istifadə edin"</string>
+    <string name="clearDefaultHintMsg" msgid="3252584689512077257">"Sistem ayarlarında, Tətbiqlərdə və Endirilmişlərdə defoltu təmizləyin."</string>
+    <string name="chooseActivity" msgid="7486876147751803333">"Fəaliyyət seçin"</string>
+    <string name="chooseUsbActivity" msgid="6894748416073583509">"USB cihaz üçün tətbiq seçin"</string>
+    <string name="noApplications" msgid="2991814273936504689">"Heç bir tətbiq bu əməliyyatı apara bilmir."</string>
+    <string name="aerr_title" msgid="1905800560317137752"></string>
+    <string name="aerr_application" msgid="932628488013092776">"Təəssüf ki, <xliff:g id="APPLICATION">%1$s</xliff:g> dayandı."</string>
+    <string name="aerr_process" msgid="4507058997035697579">"Təəssüf ki, <xliff:g id="PROCESS">%1$s</xliff:g> prosesi dayandı."</string>
+    <string name="anr_title" msgid="4351948481459135709"></string>
+    <string name="anr_activity_application" msgid="1904477189057199066">"<xliff:g id="APPLICATION">%2$s</xliff:g> cavab vermir.\n\nOnu bağlamaq istəyirsiniz?"</string>
+    <string name="anr_activity_process" msgid="5776209883299089767">"<xliff:g id="ACTIVITY">%1$s</xliff:g> aktivitisi cavab vermir. \n\nOnu bağlamaq istəyirsiniz?"</string>
+    <string name="anr_application_process" msgid="8941757607340481057">"<xliff:g id="APPLICATION">%1$s</xliff:g> cavab vermir. Onu bağlamaq istəyirsiniz?"</string>
+    <string name="anr_process" msgid="6513209874880517125">"Proses <xliff:g id="PROCESS">%1$s</xliff:g> cavab vermir. \n \n Onu bağlamaq istəyirsiniz?"</string>
+    <string name="force_close" msgid="8346072094521265605">"OK"</string>
+    <string name="report" msgid="4060218260984795706">"Şikayət edin"</string>
+    <string name="wait" msgid="7147118217226317732">"Gözlə"</string>
+    <string name="webpage_unresponsive" msgid="3272758351138122503">"Bu səhifə yararsızlaşıb.\n\nBağlamaq istəyirsiz?"</string>
+    <string name="launch_warning_title" msgid="1547997780506713581">"Tətbiq yönləndirildi"</string>
+    <string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> indi çalışır."</string>
+    <string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilk başladıldı."</string>
+    <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Miqyas"</string>
+    <string name="screen_compat_mode_show" msgid="4013878876486655892">"Həmişə göstər"</string>
+    <string name="screen_compat_mode_hint" msgid="1064524084543304459">"Bunları Sistem ayarlarında yenidən aktivləşdir Yüklənmiş &gt; Tətbiqlər &gt;."</string>
+    <string name="smv_application" msgid="3307209192155442829">"Tətbiq <xliff:g id="APPLICATION">%1$s</xliff:g> (proses <xliff:g id="PROCESS">%2$s</xliff:g>) StrictMode siyasətini pozdu."</string>
+    <string name="smv_process" msgid="5120397012047462446">"<xliff:g id="PROCESS">%1$s</xliff:g> prosesi StrictMode siyasətini pozdu."</string>
+    <string name="android_upgrading_title" msgid="1584192285441405746">"Android təkmilləşdirilir..."</string>
+    <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g> əddədən <xliff:g id="NUMBER_0">%1$d</xliff:g> tətbiq optimallaşır."</string>
+    <string name="android_upgrading_starting_apps" msgid="451464516346926713">"Tətbiqlər başladılır."</string>
+    <string name="android_upgrading_complete" msgid="1405954754112999229">"Yükləmə başa çatır."</string>
+    <string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> çalışır"</string>
+    <string name="heavy_weight_notification_detail" msgid="1721681741617898865">"Tətbiqə keçmək üçün toxunun"</string>
+    <string name="heavy_weight_switcher_title" msgid="7153167085403298169">"Tətbiqlərə keçilsin?"</string>
+    <string name="heavy_weight_switcher_text" msgid="7022631924534406403">"Bir tətbiq artıq işləyir. Digərini başlatmaq üçün onu dayandırmalısınız."</string>
+    <string name="old_app_action" msgid="493129172238566282">"<xliff:g id="OLD_APP">%1$s</xliff:g> bölməsinə qayıdın"</string>
+    <string name="old_app_description" msgid="2082094275580358049">"Yeni tətbiqi başlatmayın."</string>
+    <string name="new_app_action" msgid="5472756926945440706">"<xliff:g id="OLD_APP">%1$s</xliff:g> tətbiqini başladın"</string>
+    <string name="new_app_description" msgid="1932143598371537340">"Köhnə tətbiqi yadda saxlamadan dayandırın."</string>
+    <string name="sendText" msgid="5209874571959469142">"Mətn üçün əməliyyat seçin"</string>
+    <string name="volume_ringtone" msgid="6885421406845734650">"Zəngin səs gücü"</string>
+    <string name="volume_music" msgid="5421651157138628171">"Media həcmi"</string>
+    <string name="volume_music_hint_playing_through_bluetooth" msgid="9165984379394601533">"Bluetooth vasitəsilə oynadılır"</string>
+    <string name="volume_music_hint_silent_ringtone_selected" msgid="8310739960973156272">"Səssiz zəng"</string>
+    <string name="volume_call" msgid="3941680041282788711">"Daxili zəng səsi"</string>
+    <string name="volume_bluetooth_call" msgid="2002891926351151534">"Bluetooth zəng həcmi"</string>
+    <string name="volume_alarm" msgid="1985191616042689100">"Siqnal səsi"</string>
+    <string name="volume_notification" msgid="2422265656744276715">"Bildiriş səsi"</string>
+    <string name="volume_unknown" msgid="1400219669770445902">"Həcm"</string>
+    <string name="volume_icon_description_bluetooth" msgid="6538894177255964340">"Bluetooth həcmi"</string>
+    <string name="volume_icon_description_ringer" msgid="3326003847006162496">"Zəng səsi gücü"</string>
+    <string name="volume_icon_description_incall" msgid="8890073218154543397">"Zəng həcmi"</string>
+    <string name="volume_icon_description_media" msgid="4217311719665194215">"Media həcmi"</string>
+    <string name="volume_icon_description_notification" msgid="7044986546477282274">"Bildiriş səsi"</string>
+    <string name="ringtone_default" msgid="3789758980357696936">"Defolt rinqton"</string>
+    <string name="ringtone_default_with_actual" msgid="8129563480895990372">"Defolt rinqton (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_silent" msgid="7937634392408977062">"Heç biri"</string>
+    <string name="ringtone_picker_title" msgid="3515143939175119094">"Zəng səsləri"</string>
+    <string name="ringtone_unknown" msgid="5477919988701784788">"Naməlum rinqton"</string>
+  <plurals name="wifi_available">
+    <item quantity="one" msgid="6654123987418168693">"Wi-Fi şəbəkəsi mövcuddur"</item>
+    <item quantity="other" msgid="4192424489168397386">"Wi-Fi şəbəkələri mövcuddur"</item>
+  </plurals>
+  <plurals name="wifi_available_detailed">
+    <item quantity="one" msgid="1634101450343277345">"Wi-Fi şəbəkəni açın"</item>
+    <item quantity="other" msgid="7915895323644292768">"Açıq Wi-Fi şəbəkələri mövcuddur"</item>
+  </plurals>
+    <string name="wifi_available_sign_in" msgid="4029489716605255386">"Wi-Fi şəbəkəsinə daxil ol"</string>
+    <string name="network_available_sign_in" msgid="8495155593358054676">"Şəbəkəyə daxil olun"</string>
+    <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) -->
+    <skip />
+    <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Wi-Fi\'a qoşulmaq alınmadı"</string>
+    <string name="wifi_watchdog_network_disabled_detailed" msgid="5548780776418332675">" internet bağlantısı keyfiyyətsizdir."</string>
+    <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Direct"</string>
+    <string name="wifi_p2p_turnon_message" msgid="2909250942299627244">"Wi-Fi Direct əməliyyatını başlat. Bu Wi-Fi müştəri/hotspotu bağlayacaq."</string>
+    <string name="wifi_p2p_failed_message" msgid="3763669677935623084">"Wi-Fi Direct başladıla bilmədi."</string>
+    <string name="wifi_p2p_enabled_notification_title" msgid="2068321881673734886">"Wi-Fi Direct aktivdir"</string>
+    <string name="wifi_p2p_enabled_notification_message" msgid="1638949953993894335">"Ayarlar üçün toxunun"</string>
+    <string name="accept" msgid="1645267259272829559">"Qəbul edin"</string>
+    <string name="decline" msgid="2112225451706137894">"İmtina edin"</string>
+    <string name="wifi_p2p_invitation_sent_title" msgid="1318975185112070734">"Dəvətnamə göndərildi"</string>
+    <string name="wifi_p2p_invitation_to_connect_title" msgid="4958803948658533637">"Qoşulmaq üçün dəvət"</string>
+    <string name="wifi_p2p_from_message" msgid="570389174731951769">"Kimdən:"</string>
+    <string name="wifi_p2p_to_message" msgid="248968974522044099">"Kimə:"</string>
+    <string name="wifi_p2p_enter_pin_message" msgid="5920929550367828970">"Tələb olunan PİN kodu daxil edin:"</string>
+    <string name="wifi_p2p_show_pin_message" msgid="8530563323880921094">"PİN:"</string>
+    <string name="wifi_p2p_frequency_conflict_message" product="tablet" msgid="8012981257742232475">"Bu planşet <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazına qoşulan zaman Wi-Fi şəbəkəsindən müvəqqəti ayrılmış olacaq"</string>
+    <string name="wifi_p2p_frequency_conflict_message" product="default" msgid="7363907213787469151">"Bu telefon <xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazına qoşulan zaman Wi-Fi şəbəkəsindən müvəqqəti ayrılmış olacaq"</string>
+    <string name="select_character" msgid="3365550120617701745">"Simvol daxil edin"</string>
+    <string name="sms_control_title" msgid="7296612781128917719">"SMS mesaj göndərilir"</string>
+    <string name="sms_control_message" msgid="3867899169651496433">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; çox sayda SMS mesaj göndərir. Bu tətbiqin mesaj göndərməyə davam etməsinə icazə verirsiniz?"</string>
+    <string name="sms_control_yes" msgid="3663725993855816807">"İcazə verin"</string>
+    <string name="sms_control_no" msgid="625438561395534982">"Rədd edin"</string>
+    <string name="sms_short_code_confirm_message" msgid="1645436466285310855">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; &lt;b&gt;<xliff:g id="DEST_ADDRESS">%2$s</xliff:g>&lt;/b&gt; ünvanına mesaj göndərmək istəyir."</string>
+    <string name="sms_short_code_details" msgid="3492025719868078457">"Bu, mobil hesabınıza "<font fgcolor="#ffffb060">"əlavə tariflərin tətbiq olunması"</font>" ilə nəticələnə bilər."</string>
+    <string name="sms_premium_short_code_details" msgid="5523826349105123687"><font fgcolor="#ffffb060">"Bu mobil hesabınızda ödənişlərə səbəb olacaq."</font></string>
+    <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"Göndər"</string>
+    <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"Ləğv et"</string>
+    <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"Mənim seçimimi yadda saxla"</string>
+    <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"Bunu sonra Ayarlarda dəyişə bilərsiniz &gt; Tətbiqlər"</string>
+    <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"Həmişə icazə ver"</string>
+    <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"Heç vaxt icazə verməyin"</string>
+    <string name="sim_removed_title" msgid="6227712319223226185">"SIM kart çıxarıldı"</string>
+    <string name="sim_removed_message" msgid="2333164559970958645">"Cihazınızı etibarlı SIM kart ilə başladana kimi mobil şəbəkə əlçatmaz olacaq."</string>
+    <string name="sim_done_button" msgid="827949989369963775">"Bitdi"</string>
+    <string name="sim_added_title" msgid="3719670512889674693">"SİM kart əlavə edildi"</string>
+    <string name="sim_added_message" msgid="6599945301141050216">"Mobil şəbəkəyə qoşulmaq üçün cihazınızı yenidən başladın."</string>
+    <string name="sim_restart_button" msgid="4722407842815232347">"Yenidən başlat"</string>
+    <string name="time_picker_dialog_title" msgid="8349362623068819295">"Vaxt ayarlayın"</string>
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Tarixi quraşdır"</string>
+    <string name="date_time_set" msgid="5777075614321087758">"Ayarlayın"</string>
+    <string name="date_time_done" msgid="2507683751759308828">"Hazırdır"</string>
+    <string name="perms_new_perm_prefix" msgid="8257740710754301407"><font size="12" fgcolor="#ff33b5e5">"YENİ: "</font></string>
+    <string name="perms_description_app" msgid="5139836143293299417">"<xliff:g id="APP_NAME">%1$s</xliff:g> tərəfindən təmin edilib."</string>
+    <string name="no_permissions" msgid="7283357728219338112">"Heç bir icazə tələb olunmur"</string>
+    <string name="perm_costs_money" msgid="4902470324142151116">"bununla sizdən xərc tutula bilər"</string>
+    <string name="usb_storage_activity_title" msgid="4465055157209648641">"USB toplu yaddaş"</string>
+    <string name="usb_storage_title" msgid="5901459041398751495">"USB qoşuludur"</string>
+    <string name="usb_storage_message" product="nosdcard" msgid="3308538094316477839">"Siz USB vasitəsilə kompütere bağlandınız. Kompüter və Androidinizin USB yaddaşı arasında faylları kopyalamaq istəyirsinizsə, aşağıdakı düyməyə toxunun."</string>
+    <string name="usb_storage_message" product="default" msgid="805351000446037811">"Kompüterinizə USB ilə qoşulmusunuz. Faylları Androidinizin SD kartı ilə kompüteriniz arasında kopyalamaq istəyirsinizsə aşağıdakı düyməyə toxunun."</string>
+    <string name="usb_storage_button_mount" msgid="1052259930369508235">"USB yaddaşı aktivləşdirin"</string>
+    <string name="usb_storage_error_message" product="nosdcard" msgid="3017045217365540658">"USB yaddaşınızı USB kütləvi yaddaşı üçün istifadə edən zaman problem yarandı."</string>
+    <string name="usb_storage_error_message" product="default" msgid="2876018512716970313">"SD kartınızı USB kütləvi yaddaşı üçün istifadə edən zaman problem yarandı."</string>
+    <string name="usb_storage_notification_title" msgid="8175892554757216525">"USB qoşuludur"</string>
+    <string name="usb_storage_notification_message" msgid="939822783828183763">"Faylları kompüterinizə kopyalamaq və ya kompüterinizdən kopyalamaq üçün toxunun."</string>
+    <string name="usb_storage_stop_notification_title" msgid="2336058396663516017">"USB yaddaşı söndürün"</string>
+    <string name="usb_storage_stop_notification_message" msgid="1656852098555623822">"USB yaddaşı söndürmək üçün toxunun."</string>
+    <string name="usb_storage_stop_title" msgid="660129851708775853">"USB yaddaş istifadə olunur"</string>
+    <string name="usb_storage_stop_message" product="nosdcard" msgid="4264025280777219521">"USB yaddaşı söndürmədən öncə Android\'in USB yaddaşını kompüterdən demontaj etdiyinizə (çıxardığınıza) əmin olun."</string>
+    <string name="usb_storage_stop_message" product="default" msgid="8043969782460613114">"USB yaddaşı söndürmədən öncə Android\'in USB yaddaşını kompüterdən demontaj etdiyinizə (çıxardığınıza) əmin olun."</string>
+    <string name="usb_storage_stop_button_mount" msgid="7060218034900696029">"USB yaddaşını söndür"</string>
+    <string name="usb_storage_stop_error_message" msgid="1970374898263063836">"USB yaddaşı söndürən zaman problem oldu. USB hostu demontaj etmənizi yoxlayın və yenidən cəhd edin."</string>
+    <string name="dlg_confirm_kill_storage_users_title" msgid="963039033470478697">"USB yaddaşı aktivləşdirin"</string>
+    <string name="dlg_confirm_kill_storage_users_text" msgid="5100428757107469454">"USB yaddaşı aktivləşdirsəniz, istifadə etdiyiniz bəzi tətbiqlər dayana bilər və USB yaddaş deaktiv edilənə qədər işləməyə bilər."</string>
+    <string name="dlg_error_title" msgid="7323658469626514207">"USB əməliyyatı uğursuzdur"</string>
+    <string name="dlg_ok" msgid="7376953167039865701">"OK"</string>
+    <string name="usb_mtp_notification_title" msgid="3699913097391550394">"Media cihazı kimi qoşuldu"</string>
+    <string name="usb_ptp_notification_title" msgid="1960817192216064833">"Kamera kimi bağlanıldı"</string>
+    <string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Quraşdırıcı kimi qoşulub"</string>
+    <string name="usb_accessory_notification_title" msgid="7848236974087653666">"USB aksesuara qoşuldu"</string>
+    <string name="usb_notification_message" msgid="2290859399983720271">"Digər USB seçimləri üçün toxunun."</string>
+    <string name="extmedia_format_title" product="nosdcard" msgid="9020092196061007262">"USB yaddaşına format atılsın?"</string>
+    <string name="extmedia_format_title" product="default" msgid="3648415921526526069">"SD kart format edilsin?"</string>
+    <string name="extmedia_format_message" product="nosdcard" msgid="3934016853425761078">"USB yaddaşınızda yerləşdirilmiş bütün fayllar silinəcək. Bu addım geri dönülməzdir."</string>
+    <string name="extmedia_format_message" product="default" msgid="14131895027543830">"Kartınızdakı bütün məlumatlar itəcək."</string>
+    <string name="extmedia_format_button_format" msgid="4131064560127478695">"Format"</string>
+    <string name="adb_active_notification_title" msgid="6729044778949189918">"USB sazlama qoşuludur"</string>
+    <string name="adb_active_notification_message" msgid="1016654627626476142">"USB debaqı deaktivasiya etmək üçün toxunun."</string>
+    <string name="select_input_method" msgid="4653387336791222978">"Daxiletmə metodunu seçin"</string>
+    <string name="configure_input_methods" msgid="9091652157722495116">"Daxiletmə üsullarını ayarlayın"</string>
+    <string name="use_physical_keyboard" msgid="6203112478095117625">"Fiziki klaviatura"</string>
+    <string name="hardware" msgid="7517821086888990278">"Hardware"</string>
+    <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Klaviatura sxemi seçin"</string>
+    <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Klaviatura tərtibatı seçmək üçün toxunun."</string>
+    <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCÇDEƏFGĞHXIİJKQLMNOÖPRSŞTUÜVYZ"</string>
+    <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCÇDEƏFGĞHİIJKLMNOÖPQRSŞTUÜVWXYZ"</string>
+    <string name="candidates_style" msgid="4333913089637062257"><u>"namizədlər"</u></string>
+    <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB yaddaş hazırlanır"</string>
+    <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD kart hazırlanır"</string>
+    <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Səhvlər yoxlanılır."</string>
+    <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Boş USB yaddaşı"</string>
+    <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Boş SD kart"</string>
+    <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB yaddaş boşdur və ya sistem tərəfindən dəstəklənməyən fayl sisteminə malikdir."</string>
+    <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD kart boşdur və ya sistem tərəfindən dəstəklənməyən fayl sisteminə malikdir."</string>
+    <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Zədəli USB yaddaş"</string>
+    <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Zədəli SD kart"</string>
+    <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"SD yaddaş zədələnib. Onu format etməyə çalışın."</string>
+    <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD kart zədələnib. Onu format etməyə çalışın."</string>
+    <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB yaddaşı gözlənilmədən çıxarıldı"</string>
+    <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD kart gözlənilmədən çıxarıldı"</string>
+    <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Məlumat itkisinin qarşısını almaq üçün USB yaddaşı çıxarmazdan əvvəl onu demontaj edin."</string>
+    <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Data itkisinin qarşısını almaq üçün SD kartı çıxarmadan öncə demontaj edin."</string>
+    <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB yaddaş çıxarmaq üçün təhlükəsizdir"</string>
+    <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD kart təhlükəsiz çıxarıla bilər"</string>
+    <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"Siz USB yaddaşı təhlükəsiz çıxara bilərsiniz."</string>
+    <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"Siz SD kartı təhlükəsiz çıxara bilərsiniz."</string>
+    <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Silinmiş USB yaddaş"</string>
+    <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"SD kart çıxarıldı"</string>
+    <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB yaddaş çıxarıldı. Yeni media əlavə edin."</string>
+    <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD kart çıxarıldı. Yenisini daxil edin."</string>
+    <string name="activity_list_empty" msgid="1675388330786841066">"Uyğun gələn fəaliyyət tapılmadı."</string>
+    <string name="permlab_pkgUsageStats" msgid="8787352074326748892">"komponent istifadəsi statistikasını güncəlləyir"</string>
+    <string name="permdesc_pkgUsageStats" msgid="1106612424254277630">"Tətbiqə toplanmış istifadə statistikasını dəyişməyə imkan verir. Normal tətbiqlər tərəfindən istifadə olunmur."</string>
+    <string name="permlab_copyProtectedData" msgid="4341036311211406692">"məzmunu kopyala"</string>
+    <string name="permdesc_copyProtectedData" msgid="4390697124288317831">"Tətbiqə kontenti kopyalamaq üçün defolt konteyner servisini çağırmaq icazəsi verir. Normal tətbiqlər tərəfindən istifadə edilmir."</string>
+    <string name="permlab_route_media_output" msgid="1642024455750414694">"Media çıxışını yönləndirir"</string>
+    <string name="permdesc_route_media_output" msgid="4932818749547244346">"Tətbiqə media çıxışını digər xarici cihazlara yönləndirmək imkanı verir."</string>
+    <string name="permlab_access_keyguard_secure_storage" msgid="7565552237977815047">"Keyguard təhlükəsiz yaddaşa çıxış"</string>
+    <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Tətbiqə keguard təhlükəsiz yaddaşa çatmağa icazə verir."</string>
+    <string name="permlab_control_keyguard" msgid="172195184207828387">"Klaviatura kilidinin görülməsini və gizlədilməsini idarə edir"</string>
+    <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Tətbiqə keguardı idarə etmək icazəsi verir."</string>
+    <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Zoom nəzarəti üçün iki dəfə toxunun"</string>
+    <string name="gadget_host_error_inflating" msgid="4882004314906466162">"Widget əlavə edilə bilmədi."</string>
+    <string name="ime_action_go" msgid="8320845651737369027">"Get"</string>
+    <string name="ime_action_search" msgid="658110271822807811">"Axtar"</string>
+    <string name="ime_action_send" msgid="2316166556349314424">"Göndər"</string>
+    <string name="ime_action_next" msgid="3138843904009813834">"Növbəti"</string>
+    <string name="ime_action_done" msgid="8971516117910934605">"Tamam"</string>
+    <string name="ime_action_previous" msgid="1443550039250105948">"Əvvəlki"</string>
+    <string name="ime_action_default" msgid="2840921885558045721">"İcra edin"</string>
+    <string name="dial_number_using" msgid="5789176425167573586">"<xliff:g id="NUMBER">%s</xliff:g> istifadə etməklə\nnömrə yığın"</string>
+    <string name="create_contact_using" msgid="4947405226788104538">"<xliff:g id="NUMBER">%s</xliff:g>istifadə edərək kontakt yaradın\n"</string>
+    <string name="grant_credentials_permission_message_header" msgid="2106103817937859662">"Aşağıdakı bir və ya daha çox tətbiqlər indi və gələcəkdə hesabınıza daxil olmaq üçün icazə istəyir."</string>
+    <string name="grant_credentials_permission_message_footer" msgid="3125211343379376561">"Bu istəyə izn vermək istəyirsiniz?"</string>
+    <string name="grant_permissions_header_text" msgid="6874497408201826708">"Giriş sorğusu"</string>
+    <string name="allow" msgid="7225948811296386551">"İcazə verin"</string>
+    <string name="deny" msgid="2081879885755434506">"Rədd et"</string>
+    <string name="permission_request_notification_title" msgid="6486759795926237907">"İcazə tələb olunur"</string>
+    <string name="permission_request_notification_with_subtitle" msgid="8530393139639560189">\n" hesabı üçün<xliff:g id="ACCOUNT">%s</xliff:g> icazə sorğusu göndərildi."</string>
+    <string name="input_method_binding_label" msgid="1283557179944992649">"Daxiletmə metodu"</string>
+    <string name="sync_binding_label" msgid="3687969138375092423">"Sinxronizasiya"</string>
+    <string name="accessibility_binding_label" msgid="4148120742096474641">"Əlçatımlılıq"</string>
+    <string name="wallpaper_binding_label" msgid="1240087844304687662">"Divar kağızı"</string>
+    <string name="chooser_wallpaper" msgid="7873476199295190279">"Divar kağızını dəyişin"</string>
+    <string name="notification_listener_binding_label" msgid="2014162835481906429">"Bildiriş dinləyən"</string>
+    <string name="vpn_title" msgid="19615213552042827">"VPN aktivləşdirildi"</string>
+    <string name="vpn_title_long" msgid="6400714798049252294">"VPN <xliff:g id="APP">%s</xliff:g> tərəfindən aktivləşdirilib"</string>
+    <string name="vpn_text" msgid="3011306607126450322">"Şəbəkəni idarə etmək üçün toxunun."</string>
+    <string name="vpn_text_long" msgid="6407351006249174473">"<xliff:g id="SESSION">%s</xliff:g> sessiyaya qoşuludur. Şəbəkəni idarə etmək üçün toxunun."</string>
+    <string name="vpn_lockdown_connecting" msgid="6443438964440960745">"Həmişə aktiv VPN bağlanır..."</string>
+    <string name="vpn_lockdown_connected" msgid="8202679674819213931">"VPN bağlantısı həmişə aktiv"</string>
+    <string name="vpn_lockdown_error" msgid="6009249814034708175">"Həmişə aktiv VPN xətası"</string>
+    <string name="vpn_lockdown_config" msgid="6415899150671537970">"Konfiqurə etmək üçün toxun"</string>
+    <string name="upload_file" msgid="2897957172366730416">"Fayl seçin"</string>
+    <string name="no_file_chosen" msgid="6363648562170759465">"Heç bir fayl seçilməyib"</string>
+    <string name="reset" msgid="2448168080964209908">"Sıfırlayın"</string>
+    <string name="submit" msgid="1602335572089911941">"Göndər"</string>
+    <string name="car_mode_disable_notification_title" msgid="3164768212003864316">"Avtomobil rejimi aktivdir"</string>
+    <string name="car_mode_disable_notification_message" msgid="8035230537563503262">"Avtomobil rejimindən çıxmaq üçün toxunun."</string>
+    <string name="tethered_notification_title" msgid="3146694234398202601">"Tezerinq və ya hotspot aktivdir"</string>
+    <string name="tethered_notification_message" msgid="6857031760103062982">"Quraşdırmaq üçün toxunun."</string>
+    <string name="back_button_label" msgid="2300470004503343439">"Geri"</string>
+    <string name="next_button_label" msgid="1080555104677992408">"Növbəti"</string>
+    <string name="skip_button_label" msgid="1275362299471631819">"Keç"</string>
+    <string name="throttle_warning_notification_title" msgid="4890894267454867276">"Yüksək mobil data istifadəsi"</string>
+    <string name="throttle_warning_notification_message" msgid="3340822228599337743">"Mobil data istifadəsi haqqında daha çox öyrənmək üçün toxunun."</string>
+    <string name="throttled_notification_title" msgid="6269541897729781332">"Mobil data limiti keçildi"</string>
+    <string name="throttled_notification_message" msgid="5443457321354907181">"Mobil data istifadəsi haqqında daha çox öyrənmək üçün toxunun."</string>
+    <string name="no_matches" msgid="8129421908915840737">"Uyğunluq yoxdur"</string>
+    <string name="find_on_page" msgid="1946799233822820384">"Səhifədə tap"</string>
+  <plurals name="matches_found">
+    <item quantity="one" msgid="8167147081136579439">"1 uyğunluq"</item>
+    <item quantity="other" msgid="4641872797067609177">"<xliff:g id="INDEX">%d</xliff:g> ədəddən <xliff:g id="TOTAL">%d</xliff:g>"</item>
+  </plurals>
+    <string name="action_mode_done" msgid="7217581640461922289">"Hazırdır"</string>
+    <string name="progress_unmounting" product="nosdcard" msgid="3923810448507612746">"USB yaddaşı qaldırılır..."</string>
+    <string name="progress_unmounting" product="default" msgid="1327894998409537190">"SD kart demontaj edilir..."</string>
+    <string name="progress_erasing" product="nosdcard" msgid="4521573321524340058">"USB yaddaş silinir..."</string>
+    <string name="progress_erasing" product="default" msgid="6596988875507043042">"SD kart silinir..."</string>
+    <string name="format_error" product="nosdcard" msgid="6299769563624776948">"USB yaddaşı silinə bilmədi."</string>
+    <string name="format_error" product="default" msgid="7315248696644510935">"SD kartı silmək mümkün olmadı."</string>
+    <string name="media_bad_removal" msgid="7960864061016603281">"SD kart demontaj edilmədən öncə çıxarıldı."</string>
+    <string name="media_checking" product="nosdcard" msgid="418188720009569693">"USB yaddaş hazırda yoxlanılır."</string>
+    <string name="media_checking" product="default" msgid="7334762503904827481">"SD kart hazırda yoxlanılır."</string>
+    <string name="media_removed" msgid="7001526905057952097">"SD kart çıxarılıb."</string>
+    <string name="media_shared" product="nosdcard" msgid="5830814349250834225">"SD kart hazırda kompüter tərəfindən istifadə edilir."</string>
+    <string name="media_shared" product="default" msgid="5706130568133540435">"SD kart hal-hazırda kompüter tərəfindən istifadə edilir."</string>
+    <string name="media_unknown_state" msgid="729192782197290385">"Naməlum vəziyyətdə xarici media."</string>
+    <string name="share" msgid="1778686618230011964">"Paylaşın"</string>
+    <string name="find" msgid="4808270900322985960">"Tapın"</string>
+    <string name="websearch" msgid="4337157977400211589">"Veb Axtarış"</string>
+    <string name="find_next" msgid="5742124618942193978">"Sonrakını tap"</string>
+    <string name="find_previous" msgid="2196723669388360506">"Əvvəlkini tap"</string>
+    <string name="gpsNotifTicker" msgid="5622683912616496172">"<xliff:g id="NAME">%s</xliff:g> tərəfindən məkan sorğusu"</string>
+    <string name="gpsNotifTitle" msgid="5446858717157416839">"Məkan sorğusu"</string>
+    <string name="gpsNotifMessage" msgid="1374718023224000702">"<xliff:g id="NAME">%1$s</xliff:g> (<xliff:g id="SERVICE">%2$s</xliff:g>) tərəfindən tələb edilib"</string>
+    <string name="gpsVerifYes" msgid="2346566072867213563">"Bəli"</string>
+    <string name="gpsVerifNo" msgid="1146564937346454865">"Xeyr"</string>
+    <string name="sync_too_many_deletes" msgid="5296321850662746890">"Limiti keçəni silin"</string>
+    <string name="sync_too_many_deletes_desc" msgid="496551671008694245">"<xliff:g id="TYPE_OF_SYNC">%2$s</xliff:g> üçün <xliff:g id="NUMBER_OF_DELETED_ITEMS">%1$d</xliff:g> silinmiş fayl var, <xliff:g id="ACCOUNT_NAME">%3$s</xliff:g> hesabı. Nə etmək istəyirsiniz?"</string>
+    <string name="sync_really_delete" msgid="2572600103122596243">"Elementləri sil"</string>
+    <string name="sync_undo_deletes" msgid="2941317360600338602">"Silinənləri geri qaytar"</string>
+    <string name="sync_do_nothing" msgid="3743764740430821845">"İndilik heç nə etmə"</string>
+    <string name="choose_account_label" msgid="5655203089746423927">"Hesab seçin"</string>
+    <string name="add_account_label" msgid="2935267344849993553">"Hesab əlavə et"</string>
+    <string name="add_account_button_label" msgid="3611982894853435874">"Hesab əlavə edin"</string>
+    <string name="number_picker_increment_button" msgid="2412072272832284313">"Artır"</string>
+    <string name="number_picker_decrement_button" msgid="476050778386779067">"Azaldın"</string>
+    <string name="number_picker_increment_scroll_mode" msgid="3073101067441638428">"<xliff:g id="VALUE">%s</xliff:g> toxunun və basaraq saxlayın."</string>
+    <string name="number_picker_increment_scroll_action" msgid="9101473045891835490">"Artırmaq üçün yuxarı, azaltmaq üçün aşağı sürüşdürün."</string>
+    <string name="time_picker_increment_minute_button" msgid="8865885114028614321">"Dəqiqə artırın"</string>
+    <string name="time_picker_decrement_minute_button" msgid="6246834937080684791">"Dəqiqəni azalt"</string>
+    <string name="time_picker_increment_hour_button" msgid="3652056055810223139">"Saatı artırın"</string>
+    <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Saatı azaldın"</string>
+    <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM qurun"</string>
+    <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM qurun"</string>
+    <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Artma ayı"</string>
+    <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Ayı azaldın"</string>
+    <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Artma günü"</string>
+    <string name="date_picker_decrement_day_button" msgid="4131881521818750031">"Azalma günü"</string>
+    <string name="date_picker_increment_year_button" msgid="6318697384310808899">"Artım ili"</string>
+    <string name="date_picker_decrement_year_button" msgid="4482021813491121717">"Azalma ili"</string>
+    <string name="keyboardview_keycode_alt" msgid="4856868820040051939">"Alt"</string>
+    <string name="keyboardview_keycode_cancel" msgid="1203984017245783244">"Ləğv et"</string>
+    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Sil"</string>
+    <string name="keyboardview_keycode_done" msgid="1992571118466679775">"Hazırdır"</string>
+    <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Rejim dəyişikliyi"</string>
+    <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Shift"</string>
+    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Daxil olun"</string>
+    <string name="activitychooserview_choose_application" msgid="2125168057199941199">"Tətbiq seçin"</string>
+    <string name="shareactionprovider_share_with" msgid="806688056141131819">"Bununla paylaşın"</string>
+    <string name="shareactionprovider_share_with_application" msgid="5627411384638389738">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ilə paylaşın"</string>
+    <string name="content_description_sliding_handle" msgid="415975056159262248">"Sürüşən qulp. Toxunaraq basılı tutun."</string>
+    <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> üçün yuxarı sürüşdürün."</string>
+    <string name="description_direction_down" msgid="5087739728639014595">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> üçün aşağı sürüşdürün."</string>
+    <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> üçün sola sürüşdür."</string>
+    <string name="description_direction_right" msgid="8034433242579600980">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> üçün sağa sürüşdür."</string>
+    <string name="description_target_unlock" msgid="2228524900439801453">"Kilidi aç"</string>
+    <string name="description_target_camera" msgid="969071997552486814">"Kamera"</string>
+    <string name="description_target_silent" msgid="893551287746522182">"Səssiz"</string>
+    <string name="description_target_soundon" msgid="30052466675500172">"Səs açıqdır"</string>
+    <string name="description_target_search" msgid="3091587249776033139">"Axtar"</string>
+    <string name="description_target_unlock_tablet" msgid="3833195335629795055">"Kilidi açmaq üçün vurun."</string>
+    <string name="keyboard_headset_required_to_hear_password" msgid="7011927352267668657">"Parolların səsləndirilməsi üçün qulaqlıqları taxın."</string>
+    <string name="keyboard_password_character_no_headset" msgid="2859873770886153678">"Nöqtə."</string>
+    <string name="action_bar_home_description" msgid="5293600496601490216">"Evə gedin"</string>
+    <string name="action_bar_up_description" msgid="2237496562952152589">"Yuxarı gedin"</string>
+    <string name="action_menu_overflow_description" msgid="2295659037509008453">"Əlavə seçimlər"</string>
+    <string name="action_bar_home_description_format" msgid="7965984360903693903">"%1$s, %2$s"</string>
+    <string name="action_bar_home_subtitle_description_format" msgid="6985546530471780727">"%1$s, %2$s, %3$s"</string>
+    <string name="storage_internal" msgid="4891916833657929263">"Daxili yaddaş"</string>
+    <string name="storage_sd_card" msgid="3282948861378286745">"SD kart"</string>
+    <string name="storage_usb" msgid="3017954059538517278">"USB yaddaş"</string>
+    <string name="extract_edit_menu_button" msgid="8940478730496610137">"Redaktə et"</string>
+    <string name="data_usage_warning_title" msgid="1955638862122232342">"Data istifadə xəbərdarlığı"</string>
+    <string name="data_usage_warning_body" msgid="2814673551471969954">"İstifadə və ayarları görmək üçün toxunun"</string>
+    <string name="data_usage_3g_limit_title" msgid="7093334419518706686">"2G-3G data deaktivdir"</string>
+    <string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G data deaktiv edildi"</string>
+    <string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Mobil data deaktivdir"</string>
+    <string name="data_usage_wifi_limit_title" msgid="8992154736441284865">"Wi-Fi data deaktiv edildi"</string>
+    <string name="data_usage_limit_body" msgid="3317964706973601386">"Aktivləşdirmək üçün toxunun."</string>
+    <string name="data_usage_3g_limit_snoozed_title" msgid="7026739121138005231">"2G-3G data limiti aşılıb"</string>
+    <string name="data_usage_4g_limit_snoozed_title" msgid="1106562779311209039">"4G data limiti keçildi"</string>
+    <string name="data_usage_mobile_limit_snoozed_title" msgid="279240572165412168">"Mobil data limiti keçildi"</string>
+    <string name="data_usage_wifi_limit_snoozed_title" msgid="8743856006384825974">"Wi-Fi data limiti keçildi"</string>
+    <string name="data_usage_limit_snoozed_body" msgid="7035490278298441767">"<xliff:g id="SIZE">%s</xliff:g> müəyyən edilmiş limit aşır."</string>
+    <string name="data_usage_restricted_title" msgid="5965157361036321914">"Arxaplan datası məhdudlaşdırıldı"</string>
+    <string name="data_usage_restricted_body" msgid="6741521330997452990">"Məhdudiyyəti aradan qaldırmaq üçün toxunun"</string>
+    <string name="ssl_certificate" msgid="6510040486049237639">"Təhlükəsizlik sertifikatı"</string>
+    <string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Bu sertifikat etibarlıdır."</string>
+    <string name="issued_to" msgid="454239480274921032">"Verilib:"</string>
+    <string name="common_name" msgid="2233209299434172646">"Ümumi ad:"</string>
+    <string name="org_name" msgid="6973561190762085236">"Təşkilat:"</string>
+    <string name="org_unit" msgid="7265981890422070383">"Təşkilati vahid:"</string>
+    <string name="issued_by" msgid="2647584988057481566">"Tərəfindən verilib:"</string>
+    <string name="validity_period" msgid="8818886137545983110">"Keçərlilik:"</string>
+    <string name="issued_on" msgid="5895017404361397232">"Dərc olunub:"</string>
+    <string name="expires_on" msgid="3676242949915959821">"Bitmə vaxtı:"</string>
+    <string name="serial_number" msgid="758814067660862493">"Seriya nömrəsi:"</string>
+    <string name="fingerprints" msgid="4516019619850763049">"Barmaq izləri:"</string>
+    <string name="sha256_fingerprint" msgid="4391271286477279263">"SHA-256 barmaq izi:"</string>
+    <string name="sha1_fingerprint" msgid="7930330235269404581">"SHA-1 barmaq izi:"</string>
+    <string name="activity_chooser_view_see_all" msgid="4292569383976636200">"Hamısını seçın"</string>
+    <string name="activity_chooser_view_dialog_title_default" msgid="4710013864974040615">"Fəaliyyəti seçin"</string>
+    <string name="share_action_provider_share_with" msgid="5247684435979149216">"Bununla paylaşın"</string>
+    <string name="status_bar_device_locked" msgid="3092703448690669768">"Cihaz kilidləndi."</string>
+    <string name="list_delimeter" msgid="3975117572185494152">", "</string>
+    <string name="sending" msgid="3245653681008218030">"Göndərilir..."</string>
+    <string name="launchBrowserDefault" msgid="2057951947297614725">"Brauzer işə salınsın?"</string>
+    <string name="SetupCallDefault" msgid="5834948469253758575">"Zəngi qəbul edək?"</string>
+    <string name="activity_resolver_use_always" msgid="8017770747801494933">"Həmişə"</string>
+    <string name="activity_resolver_use_once" msgid="2404644797149173758">"Sadəcə bir dəfə"</string>
+    <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Planşet"</string>
+    <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Telefon"</string>
+    <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Qulaqlıq"</string>
+    <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"Dok spikerlər"</string>
+    <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string>
+    <string name="default_audio_route_category_name" msgid="3722811174003886946">"Sistem"</string>
+    <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Bluetooth audio"</string>
+    <string name="wireless_display_route_description" msgid="9070346425023979651">"Simsiz ekran"</string>
+    <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Hazırdır"</string>
+    <string name="media_route_button_content_description" msgid="5758553567065145276">"Media çıxışı"</string>
+    <string name="media_route_status_scanning" msgid="7279908761758293783">"Skan edilir..."</string>
+    <string name="media_route_status_connecting" msgid="6422571716007825440">"Qoşulur..."</string>
+    <string name="media_route_status_available" msgid="6983258067194649391">"Əlçatımlı"</string>
+    <string name="media_route_status_not_available" msgid="6739899962681886401">"Əlçatımlı deyil"</string>
+    <string name="media_route_status_in_use" msgid="4533786031090198063">"İstifadə olunur"</string>
+    <string name="display_manager_built_in_display_name" msgid="2583134294292563941">"Daxili ekran"</string>
+    <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"HDMI Ekran"</string>
+    <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Örtük #<xliff:g id="ID">%1$d</xliff:g>"</string>
+    <string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
+    <string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", təhlükəsiz"</string>
+    <string name="wifi_display_notification_title" msgid="2223050649240326557">"Simsiz ekran qoşulub"</string>
+    <string name="wifi_display_notification_message" msgid="4498802012464170685">"Bu ekran digər cihazda göstərir"</string>
+    <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Bağlantını kəsin"</string>
+    <string name="kg_emergency_call_label" msgid="684946192523830531">"Təcili zəng"</string>
+    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Şablonu unutmuşam"</string>
+    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Yanlış Model"</string>
+    <string name="kg_wrong_password" msgid="2333281762128113157">"Yanlış Şifrə"</string>
+    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN səhvdir"</string>
+    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"<xliff:g id="NUMBER">%1$d</xliff:g> saniyə sonra yenidən cəhd edin."</string>
+    <string name="kg_pattern_instructions" msgid="398978611683075868">"Şablonunuzu çəkin"</string>
+    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"SIM PIN kodu daxil edin"</string>
+    <string name="kg_pin_instructions" msgid="2377242233495111557">"PİN kodu daxil edin"</string>
+    <string name="kg_password_instructions" msgid="5753646556186936819">"Parol daxil edin"</string>
+    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM indi deaktivdir. Davam etmək üçün PUK kodu daxil edin. Əlavə məlumat üçün operatora müraciət edin."</string>
+    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"İstədiyiniz PİN kodu daxil edin"</string>
+    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"İstədiyiniz PIN kodu təsdiqləyin"</string>
+    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SİM kartın kilidi açılır..."</string>
+    <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"Yanlış PİN kod."</string>
+    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4-dən 8-ə qədər rəqəmi olan PIN yazın."</string>
+    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK kod 8 rəqəm və ya daha çox olmalıdır."</string>
+    <string name="kg_invalid_puk" msgid="3638289409676051243">"Düzgün PUK kodu yenidən daxil edin. Təkrarlanan cəhdlər SIM\'i birdəfəlik sıradan çıxaracaq."</string>
+    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN kodları uyğun deyil"</string>
+    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Həddindən çox cəhd edildi!"</string>
+    <string name="kg_login_instructions" msgid="1100551261265506448">"Kilidi açmaq üçün Google hesabınız ilə daxil olun."</string>
+    <string name="kg_login_username_hint" msgid="5718534272070920364">"İstifadəçi adı (e-poçt)"</string>
+    <string name="kg_login_password_hint" msgid="9057289103827298549">"Şifrə"</string>
+    <string name="kg_login_submit_button" msgid="5355904582674054702">"Daxil ol"</string>
+    <string name="kg_login_invalid_input" msgid="5754664119319872197">"Yanlış istifadəçi adı və ya parol."</string>
+    <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"İstifadəçi adınızı və ya parolunuzu unutmusunuz?\n "<b>"google.com/accounts/recovery"</b>" linkinə daxil olun."</string>
+    <string name="kg_login_checking_password" msgid="1052685197710252395">"Hesab yoxlanılır..."</string>
+    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"PIN kodunuzu <xliff:g id="NUMBER_0">%d</xliff:g> dəfə yanlış daxil etdiniz.\n\n <xliff:g id="NUMBER_1">%d</xliff:g> saniyə ərzində yenidən yoxlayın"</string>
+    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Şifrənizi <xliff:g id="NUMBER_0">%d</xliff:g> dəfə yanlış daxil etdiniz. \n\n <xliff:g id="NUMBER_1">%d</xliff:g> saniyə ərzində yenidən yoxlayın."</string>
+    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Modelinizi <xliff:g id="NUMBER_0">%d</xliff:g> dəfə yanlış çəkmisiniz.\n\n <xliff:g id="NUMBER_1">%d</xliff:g> saniyə ərzində yenidən yoxlayın"</string>
+    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="1575557200627128949">"Siz planşet kilidini açmaq üçün <xliff:g id="NUMBER_0">%d</xliff:g> dəfə uğursuz cəhd etmisiniz. <xliff:g id="NUMBER_1">%d</xliff:g> dəfə də uğursuz cəhd etsəniz, planşet fabrik ayarlarına sıfırlanacaq və bütün məlumatlarınız itəcək."</string>
+    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="4051015943038199910">"Siz telefon kilidini açmaq üçün <xliff:g id="NUMBER_0">%d</xliff:g> dəfə uğursuz cəhd etmisiniz. <xliff:g id="NUMBER_1">%d</xliff:g> dəfə də uğursuz cəhd etsəniz, telefon fabrik ayarlarına sıfırlanacaq və bütün məlumatlarınız itəcək."</string>
+    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="2072996269148483637">"Siz planşet kilidini açmaq üçün <xliff:g id="NUMBER">%d</xliff:g> dəfə uğursuz cəhd etmisiniz. Planşet fabrik ayarlarına sıfırlanacaq."</string>
+    <string name="kg_failed_attempts_now_wiping" product="default" msgid="4817627474419471518">"Siz telefonun kilidini açmaq üçün <xliff:g id="NUMBER">%d</xliff:g> yanlış cəhd etmisiniz. Telefon artıq defolt zavod halına sıfırlanacaq."</string>
+    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Siz kilidi açmaq üçün şablonu <xliff:g id="NUMBER_0">%d</xliff:g> dəfə səhv çəkdiniz. <xliff:g id="NUMBER_1">%d</xliff:g> daha uğursuz cəhddən sonra planşetinizin kilidini e-poçt hesabınızla açmaq tələb olunacaq.\n\n <xliff:g id="NUMBER_2">%d</xliff:g> saniyə ərzində bir daha yoxlayın."</string>
+    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Siz artıq modeli <xliff:g id="NUMBER_0">%d</xliff:g> dəfə yanlış daxil etmisiniz.<xliff:g id="NUMBER_1">%d</xliff:g> dəfə də yanlış daxil etsəniz, telefonun kilidinin açılması üçün elektron poçt ünvanınız tələb olunacaq.\n\n <xliff:g id="NUMBER_2">%d</xliff:g> saniyə ərzində yenidən cəhd edin."</string>
+    <string name="kg_text_message_separator" product="default" msgid="4160700433287233771">" - "</string>
+    <string name="kg_reordering_delete_drop_target_text" msgid="7899202978204438708">"Yığışdır"</string>
+    <string name="safe_media_volume_warning" product="default" msgid="7324161939475478066">"Səs gücü tövsiyə edilən səviyyədən artırılsın?\nUzun müddət yüksək səs gücü ilə dinləmə Sizin eşitmə qabiliyyətinizə mənfi təsir edə bilər."</string>
+    <string name="continue_to_enable_accessibility" msgid="1626427372316070258">"Əlçatımlığı aktivləşdirmək üçün iki barmağınızı basılı saxlayın."</string>
+    <string name="accessibility_enabled" msgid="1381972048564547685">"Əlçatımlılıq aktivləşdirildi"</string>
+    <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Giriş imkanı ləğv edilib."</string>
+    <string name="user_switched" msgid="3768006783166984410">"Cari istifadəçi <xliff:g id="NAME">%1$s</xliff:g>."</string>
+    <string name="owner_name" msgid="2716755460376028154">"Sahib"</string>
+    <string name="error_message_title" msgid="4510373083082500195">"Xəta"</string>
+    <string name="app_no_restricted_accounts" msgid="5739463249673727736">"Bu tətbiq məhdud profillər üçün hesabları dəstəkləmir."</string>
+    <string name="app_not_found" msgid="3429141853498927379">"Bu əməliyyatı idarə etmək üçün heç bir tətbiq tapılmadı."</string>
+    <string name="revoke" msgid="5404479185228271586">"Ləğv edin"</string>
+    <string name="mediaSize_iso_a0" msgid="7875427489420821793">"ISO A0"</string>
+    <string name="mediaSize_iso_a1" msgid="3760734499050875356">"ISO A1"</string>
+    <string name="mediaSize_iso_a2" msgid="5973266378020144382">"ISO A2"</string>
+    <string name="mediaSize_iso_a3" msgid="1373407105687300884">"ISO A3"</string>
+    <string name="mediaSize_iso_a4" msgid="6689772807982597254">"ISO A4"</string>
+    <string name="mediaSize_iso_a5" msgid="5353549652015741040">"ISO A5"</string>
+    <string name="mediaSize_iso_a6" msgid="8585038048674911907">"ISO A6"</string>
+    <string name="mediaSize_iso_a7" msgid="6641836716963839119">"ISO A7"</string>
+    <string name="mediaSize_iso_a8" msgid="7571139437465693355">"ISO A8"</string>
+    <string name="mediaSize_iso_a9" msgid="1378455891957115079">"ISO A9"</string>
+    <string name="mediaSize_iso_a10" msgid="2480747457429475344">"ISO A10"</string>
+    <string name="mediaSize_iso_b0" msgid="3965935097661108039">"ISO B0"</string>
+    <string name="mediaSize_iso_b1" msgid="2505753285010115437">"ISO B1"</string>
+    <string name="mediaSize_iso_b2" msgid="8763874709859458453">"ISO B2"</string>
+    <string name="mediaSize_iso_b3" msgid="4210506688191764076">"ISO B3"</string>
+    <string name="mediaSize_iso_b4" msgid="5749404165888526034">"B4 ISO"</string>
+    <string name="mediaSize_iso_b5" msgid="7640627414621904733">"ISO B5"</string>
+    <string name="mediaSize_iso_b6" msgid="7342988864712748544">"ISO B6"</string>
+    <string name="mediaSize_iso_b7" msgid="5069844065235382429">"ISO B7"</string>
+    <string name="mediaSize_iso_b8" msgid="7316818922278779774">"ISO B8"</string>
+    <string name="mediaSize_iso_b9" msgid="5414727094026532341">"ISO B9"</string>
+    <string name="mediaSize_iso_b10" msgid="5251253731832048185">"ISO B10"</string>
+    <string name="mediaSize_iso_c0" msgid="4003138342671964217">"ISO C0"</string>
+    <string name="mediaSize_iso_c1" msgid="1935188063393553008">"ISO C1"</string>
+    <string name="mediaSize_iso_c2" msgid="3197307969712069904">"ISO C2"</string>
+    <string name="mediaSize_iso_c3" msgid="4335826087321913508">"ISO C3"</string>
+    <string name="mediaSize_iso_c4" msgid="3745639598281015005">"ISO C4"</string>
+    <string name="mediaSize_iso_c5" msgid="8269457765822791013">"ISO C5"</string>
+    <string name="mediaSize_iso_c6" msgid="566666105260346930">"ISO C6"</string>
+    <string name="mediaSize_iso_c7" msgid="8678413180782608498">"ISO C7"</string>
+    <string name="mediaSize_iso_c8" msgid="8392376206627041730">"ISO C8"</string>
+    <string name="mediaSize_iso_c9" msgid="9191613372324845405">"ISO C9"</string>
+    <string name="mediaSize_iso_c10" msgid="7327709699184920822">"ISO C10"</string>
+    <string name="mediaSize_na_letter" msgid="4191805615829472953">"Məktub"</string>
+    <string name="mediaSize_na_gvrnmt_letter" msgid="7853382192649405507">"Hökumət Məktubu"</string>
+    <string name="mediaSize_na_legal" msgid="6697982988283823150">"Hüquqi"</string>
+    <string name="mediaSize_na_junior_legal" msgid="3727743969902758948">"Kiçik Hüquq"</string>
+    <string name="mediaSize_na_ledger" msgid="281871464896601236">"Qovluq"</string>
+    <string name="mediaSize_na_tabloid" msgid="5775966416333578127">"Qısa"</string>
+    <string name="write_fail_reason_cancelled" msgid="7091258378121627624">"Ləğv edildi"</string>
+    <string name="write_fail_reason_cannot_write" msgid="8132505417935337724">"Kontent yazmna xətası"</string>
+    <string name="restr_pin_enter_pin" msgid="3395953421368476103">"PIN daxil edin"</string>
+    <string name="restr_pin_enter_old_pin" msgid="1462206225512910757">"Cari PIN"</string>
+    <string name="restr_pin_enter_new_pin" msgid="5959606691619959184">"Yeni PIN"</string>
+    <string name="restr_pin_confirm_pin" msgid="8501523829633146239">"Yeni PIN\'i təsdiq edin"</string>
+    <string name="restr_pin_create_pin" msgid="8017600000263450337">"Dəyişmə məhdudiyyətləri üçün PİN yaradın"</string>
+    <string name="restr_pin_error_doesnt_match" msgid="2224214190906994548">"PİN uyğun gəlmir. Yenidən cəhd edin."</string>
+    <string name="restr_pin_error_too_short" msgid="8173982756265777792">"PİN çox qısadır. Ən azı 4 rəqəm olmalıdır."</string>
+  <plurals name="restr_pin_countdown">
+    <item quantity="one" msgid="4835639969503729874">"Yanlış PİN. 1 saniyə sonra təkrar sınayın."</item>
+    <item quantity="other" msgid="8030607343223287654">"Yanlış PİN. <xliff:g id="COUNT">%d</xliff:g> saniyə sonra təkrar sınayın."</item>
+  </plurals>
+    <string name="transient_navigation_confirmation" msgid="4907844043611123426">"Paneli göstərmək üçün ekranın küncünü sürüşdürün"</string>
+    <string name="transient_navigation_confirmation_long" msgid="8061685920508086697">"Sistem panelini göstərmək üçün ekranın küncündən sürüşdürün"</string>
+</resources>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index e8e10a0..113757b 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -109,7 +109,7 @@
     <string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: अग्रेषित नहीं किया गया"</string>
     <string name="fcComplete" msgid="3118848230966886575">"सुविधा कोड पूर्ण."</string>
     <string name="fcError" msgid="3327560126588500777">"कनेक्‍शन समस्‍या या अमान्‍य सुविधा कोड."</string>
-    <string name="httpErrorOk" msgid="1191919378083472204">"ठीक"</string>
+    <string name="httpErrorOk" msgid="1191919378083472204">"ठीक है"</string>
     <string name="httpError" msgid="7956392511146698522">"कोई नेटवर्क त्रुटि हुई थी."</string>
     <string name="httpErrorLookup" msgid="4711687456111963163">"URL नहीं मिल सका."</string>
     <string name="httpErrorUnsupportedAuthScheme" msgid="6299980280442076799">"साइट प्रमाणीकरण योजना समर्थित नहीं है."</string>
@@ -1062,7 +1062,7 @@
     <string name="VideoView_error_title" msgid="3534509135438353077">"वीडियो समस्‍याएं"</string>
     <string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"यह वीडियो इस उपकरण पर स्ट्रीमिंग के लिए मान्‍य नहीं है."</string>
     <string name="VideoView_error_text_unknown" msgid="3450439155187810085">"यह वीडियो नहीं चलाया जा सकता."</string>
-    <string name="VideoView_error_button" msgid="2822238215100679592">"ठीक"</string>
+    <string name="VideoView_error_button" msgid="2822238215100679592">"ठीक है"</string>
     <string name="relative_time" msgid="1818557177829411417">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="noon" msgid="7245353528818587908">"अपराह्न"</string>
     <string name="Noon" msgid="3342127745230013127">"अपराह्न"</string>
@@ -1087,9 +1087,9 @@
     <string name="low_internal_storage_view_text" msgid="6640505817617414371">"हो सकता है कुछ सिस्टम फ़ंक्शन कार्य न करें"</string>
     <string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> चल रहा है"</string>
     <string name="app_running_notification_text" msgid="4653586947747330058">"अधिक जानकारी के लिए या एप्लिकेशन रोकने के लिए स्पर्श करें."</string>
-    <string name="ok" msgid="5970060430562524910">"ठीक"</string>
+    <string name="ok" msgid="5970060430562524910">"ठीक है"</string>
     <string name="cancel" msgid="6442560571259935130">"रद्द करें"</string>
-    <string name="yes" msgid="5362982303337969312">"ठीक"</string>
+    <string name="yes" msgid="5362982303337969312">"ठीक है"</string>
     <string name="no" msgid="5141531044935541497">"रद्द करें"</string>
     <string name="dialog_alert_title" msgid="2049658708609043103">"ध्यानाकर्षण"</string>
     <string name="loading" msgid="7933681260296021180">"लोड हो रहे हैं..."</string>
@@ -1109,7 +1109,7 @@
     <string name="anr_activity_process" msgid="5776209883299089767">"गतिविधि <xliff:g id="ACTIVITY">%1$s</xliff:g> प्रतिसाद नहीं दे रही है.\n\nक्या आप इसे बंद करना चाहते हैं?"</string>
     <string name="anr_application_process" msgid="8941757607340481057">"<xliff:g id="APPLICATION">%1$s</xliff:g> प्रतिसाद नहीं दे रहा है. क्या आप इसे बंद करना चाहते हैं?"</string>
     <string name="anr_process" msgid="6513209874880517125">"प्रक्रिया <xliff:g id="PROCESS">%1$s</xliff:g> प्रतिसाद नहीं दे रही है.\n\nक्‍या आप इसे बंद करना चाहते हैं?"</string>
-    <string name="force_close" msgid="8346072094521265605">"ठीक"</string>
+    <string name="force_close" msgid="8346072094521265605">"ठीक है"</string>
     <string name="report" msgid="4060218260984795706">"रिपोर्ट करें"</string>
     <string name="wait" msgid="7147118217226317732">"प्रतीक्षा करें"</string>
     <string name="webpage_unresponsive" msgid="3272758351138122503">"पृष्ठ प्रतिसाद नहीं दे रहा है.\n\nक्‍या आप इसे बंद करना चाहते हैं?"</string>
@@ -1229,7 +1229,7 @@
     <string name="dlg_confirm_kill_storage_users_title" msgid="963039033470478697">"USB संग्रहण चालू करें"</string>
     <string name="dlg_confirm_kill_storage_users_text" msgid="5100428757107469454">"यदि आप USB संग्रहण चालू करते हैं, तो आपके द्वारा उपयोग किए जा रहे कुछ एप्‍लिकेशन रुक जाएंगे और हो सकता है कि वे तब तक अनुपलब्‍ध रहें जब तक कि आप USB संग्रहण बंद नहीं कर देते."</string>
     <string name="dlg_error_title" msgid="7323658469626514207">"USB कार्यवाही विफल"</string>
-    <string name="dlg_ok" msgid="7376953167039865701">"ठीक"</string>
+    <string name="dlg_ok" msgid="7376953167039865701">"ठीक है"</string>
     <string name="usb_mtp_notification_title" msgid="3699913097391550394">"किसी मीडिया उपकरण के रूप में कनेक्‍ट किया गया"</string>
     <string name="usb_ptp_notification_title" msgid="1960817192216064833">"कैमरे के रूप में कनेक्‍ट करें"</string>
     <string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"किसी इंस्‍टॉलर के रूप में कनेक्‍ट किया गया"</string>
diff --git a/core/res/res/values-mcc208-mnc26/config.xml b/core/res/res/values-mcc208-mnc26/config.xml
new file mode 100644
index 0000000..31d2d0f
--- /dev/null
+++ b/core/res/res/values-mcc208-mnc26/config.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Don't use roaming icon for considered operators -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>20801</item>
+        <item>20810</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc214-mnc04/config.xml b/core/res/res/values-mcc214-mnc04/config.xml
new file mode 100644
index 0000000..71301d5
--- /dev/null
+++ b/core/res/res/values-mcc214-mnc04/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Don't use roaming icon for considered operators -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>21407</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc234-mnc30/config.xml b/core/res/res/values-mcc234-mnc30/config.xml
new file mode 100644
index 0000000..eabdf9a
--- /dev/null
+++ b/core/res/res/values-mcc234-mnc30/config.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Don't use roaming icon for considered operators -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>23430</item>
+        <item>23431</item>
+        <item>23432</item>
+        <item>23433</item>
+        <item>23434</item>
+        <item>23486</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc234-mnc31/config.xml b/core/res/res/values-mcc234-mnc31/config.xml
new file mode 100644
index 0000000..eabdf9a
--- /dev/null
+++ b/core/res/res/values-mcc234-mnc31/config.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Don't use roaming icon for considered operators -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>23430</item>
+        <item>23431</item>
+        <item>23432</item>
+        <item>23433</item>
+        <item>23434</item>
+        <item>23486</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc234-mnc32/config.xml b/core/res/res/values-mcc234-mnc32/config.xml
new file mode 100644
index 0000000..eabdf9a
--- /dev/null
+++ b/core/res/res/values-mcc234-mnc32/config.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Don't use roaming icon for considered operators -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>23430</item>
+        <item>23431</item>
+        <item>23432</item>
+        <item>23433</item>
+        <item>23434</item>
+        <item>23486</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc234-mnc33/config.xml b/core/res/res/values-mcc234-mnc33/config.xml
index d79d212..175f76e 100644
--- a/core/res/res/values-mcc234-mnc33/config.xml
+++ b/core/res/res/values-mcc234-mnc33/config.xml
@@ -35,4 +35,14 @@
          "name,apn,proxy,port,username,password,server,mmsc,mmsproxy,mmsport,mcc,mnc,auth,type"
          note that empty fields can be ommitted: "name,apn,,,,,,,,,310,260,,DUN" -->
     <string translatable="false" name="config_tether_apndata">Consumer Broadband,consumerbroadband,,,,,,,,,234,33,,DUN</string>
+
+    <!-- Don't use roaming icon for considered operators -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>23430</item>
+        <item>23431</item>
+        <item>23432</item>
+        <item>23433</item>
+        <item>23434</item>
+        <item>23486</item>
+    </string-array>
 </resources>
diff --git a/core/res/res/values-mcc234-mnc34/config.xml b/core/res/res/values-mcc234-mnc34/config.xml
new file mode 100644
index 0000000..eabdf9a
--- /dev/null
+++ b/core/res/res/values-mcc234-mnc34/config.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Don't use roaming icon for considered operators -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>23430</item>
+        <item>23431</item>
+        <item>23432</item>
+        <item>23433</item>
+        <item>23434</item>
+        <item>23486</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc234-mnc86/config.xml b/core/res/res/values-mcc234-mnc86/config.xml
new file mode 100644
index 0000000..eabdf9a
--- /dev/null
+++ b/core/res/res/values-mcc234-mnc86/config.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Don't use roaming icon for considered operators -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>23430</item>
+        <item>23431</item>
+        <item>23432</item>
+        <item>23433</item>
+        <item>23434</item>
+        <item>23486</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc302-mnc610/config.xml b/core/res/res/values-mcc302-mnc610/config.xml
new file mode 100644
index 0000000..706570c
--- /dev/null
+++ b/core/res/res/values-mcc302-mnc610/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Don't use roaming icon for considered operators -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>302</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc302-mnc640/config.xml b/core/res/res/values-mcc302-mnc640/config.xml
new file mode 100644
index 0000000..706570c
--- /dev/null
+++ b/core/res/res/values-mcc302-mnc640/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Don't use roaming icon for considered operators -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>302</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mcc302-mnc780/config.xml b/core/res/res/values-mcc302-mnc780/config.xml
index 42d4956..b03d14e 100644
--- a/core/res/res/values-mcc302-mnc780/config.xml
+++ b/core/res/res/values-mcc302-mnc780/config.xml
@@ -37,4 +37,8 @@
          note that empty fields can be ommitted: "name,apn,,,,,,,,,310,260,,DUN" -->
     <string translatable="false" name="config_tether_apndata">SaskTel Tethering,inet.stm.sk.ca,,,,,,,,,302,780,,DUN</string>
 
+    <!-- Don't use roaming icon for considered operators -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>302</item>
+    </string-array>
 </resources>
diff --git a/core/res/res/values-mcc425-mnc07/config.xml b/core/res/res/values-mcc425-mnc07/config.xml
index 890420e..51a9934 100644
--- a/core/res/res/values-mcc425-mnc07/config.xml
+++ b/core/res/res/values-mcc425-mnc07/config.xml
@@ -37,4 +37,8 @@
          note that empty fields can be ommitted: "name,apn,,,,,,,,,310,260,,DUN" -->
     <string translatable="false" name="config_tether_apndata">PC HOT mobile,pc.hotm,,,,,,,,,425,07,,DUN</string>
 
+    <!-- Don't use roaming icon for considered operators -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>42503</item>
+    </string-array>
 </resources>
diff --git a/core/res/res/values-mcc425-mnc08/config.xml b/core/res/res/values-mcc425-mnc08/config.xml
new file mode 100644
index 0000000..8470b86
--- /dev/null
+++ b/core/res/res/values-mcc425-mnc08/config.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Don't use roaming icon for considered operators -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+        <item>42502</item>
+    </string-array>
+</resources>
diff --git a/core/res/res/values-mn-rMN/strings.xml b/core/res/res/values-mn-rMN/strings.xml
new file mode 100644
index 0000000..67ec195
--- /dev/null
+++ b/core/res/res/values-mn-rMN/strings.xml
@@ -0,0 +1,1584 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2006, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="byteShort" msgid="8340973892742019101">"B"</string>
+    <string name="kilobyteShort" msgid="5973789783504771878">"КБ"</string>
+    <string name="megabyteShort" msgid="6355851576770428922">"МБ"</string>
+    <string name="gigabyteShort" msgid="3259882455212193214">"ГБ"</string>
+    <string name="terabyteShort" msgid="231613018159186962">"TБ"</string>
+    <string name="petabyteShort" msgid="5637816680144990219">"ПБ"</string>
+    <string name="fileSizeSuffix" msgid="9164292791500531949">"<xliff:g id="NUMBER">%1$s</xliff:g><xliff:g id="UNIT">%2$s</xliff:g>"</string>
+    <string name="untitled" msgid="4638956954852782576">"&lt;Гарчиггүй&gt;"</string>
+    <string name="ellipsis" msgid="7899829516048813237">"…"</string>
+    <string name="ellipsis_two_dots" msgid="1228078994866030736">"‥"</string>
+    <string name="emptyPhoneNumber" msgid="7694063042079676517">"(Утасны дугаар байхгүй)"</string>
+    <string name="unknownName" msgid="2277556546742746522">"(Тодорхойгүй)"</string>
+    <string name="defaultVoiceMailAlphaTag" msgid="2660020990097733077">"дуут шуудан"</string>
+    <string name="defaultMsisdnAlphaTag" msgid="2850889754919584674">"MSISDN1"</string>
+    <string name="mmiError" msgid="5154499457739052907">"Холболтын асуудал эсвэл буруу MMI код."</string>
+    <string name="mmiFdnError" msgid="5224398216385316471">"Ажиллагаа зөвөх тогтсон дугаараар хязгаарлагдсан."</string>
+    <string name="serviceEnabled" msgid="8147278346414714315">"Үйлчилгээ идэвхжсэн."</string>
+    <string name="serviceEnabledFor" msgid="6856228140453471041">"Дараах үйлчилгээ идэвхтэй болсон:"</string>
+    <string name="serviceDisabled" msgid="1937553226592516411">"Үйлчилгээ идэвхгүй болсон."</string>
+    <string name="serviceRegistered" msgid="6275019082598102493">"Амжилттай бүртгэв."</string>
+    <string name="serviceErased" msgid="1288584695297200972">"Амжилттай арилгалаа."</string>
+    <string name="passwordIncorrect" msgid="7612208839450128715">"Буруу нууц үг"</string>
+    <string name="mmiComplete" msgid="8232527495411698359">"MMI дууссан."</string>
+    <string name="badPin" msgid="9015277645546710014">"Таны бичсэн хуучин PIN буруу байна."</string>
+    <string name="badPuk" msgid="5487257647081132201">"Таны бичсэн PUК буруу байна."</string>
+    <string name="mismatchPin" msgid="609379054496863419">"Таны оруулсан PIN таарахгүй байна."</string>
+    <string name="invalidPin" msgid="3850018445187475377">"4-8 тооноос бүтэх PIN-г бичнэ үү."</string>
+    <string name="invalidPuk" msgid="8761456210898036513">"8-с цөөнгүй тооноос бүтэх PUK-г бичнэ үү."</string>
+    <string name="needPuk" msgid="919668385956251611">"SIM картны PUK-түгжигдсэн. Тайлах бол PUK кодыг бичнэ үү."</string>
+    <string name="needPuk2" msgid="4526033371987193070">"SIM картын хаалтыг болиулах бол PUK2-г бичнэ үү."</string>
+    <string name="imei" msgid="2625429890869005782">"IMEI"</string>
+    <string name="meid" msgid="4841221237681254195">"MEID"</string>
+    <string name="ClipMmi" msgid="6952821216480289285">"Дуудлага хийгчийн ID"</string>
+    <string name="ClirMmi" msgid="7784673673446833091">"Гарч байгаа дуудлага хийгчийн ID"</string>
+    <string name="CfMmi" msgid="5123218989141573515">"Дуудлага дамжуулах"</string>
+    <string name="CwMmi" msgid="9129678056795016867">"дуудлага хүлээлгэх"</string>
+    <string name="BaMmi" msgid="455193067926770581">"Дуудлага хориглох"</string>
+    <string name="PwdMmi" msgid="7043715687905254199">"Нууц үг солих"</string>
+    <string name="PinMmi" msgid="3113117780361190304">"PIN солих"</string>
+    <string name="CnipMmi" msgid="3110534680557857162">"Дуудсан дугаар харуулах"</string>
+    <string name="CnirMmi" msgid="3062102121430548731">"Дуудлага хийгчийн дугаар хязгаарлагдсан"</string>
+    <string name="ThreeWCMmi" msgid="9051047170321190368">"Гурван чиглэлт дуудлага"</string>
+    <string name="RuacMmi" msgid="7827887459138308886">"Хүсээгүй тааламжгүй дуудлагаас татгалзах"</string>
+    <string name="CndMmi" msgid="3116446237081575808">"Дуудлага хийгчийн дугаарыг дамжуулах"</string>
+    <string name="DndMmi" msgid="1265478932418334331">"Бүү саад бол"</string>
+    <string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"Дуудлага хийгчийн ID хязгаарлагдсан. Дараагийн дуудлага: Хязгаарлагдсан"</string>
+    <string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"Дуудлага хийгчийн ID хязгаарлагдсан. Дараагийн дуудлага: Хязгаарлагдаагүй"</string>
+    <string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"Дуудлага хийгчийн ID хязгаарлагдаагүй. Дараагийн дуудлага: Хязгаарлагдсан"</string>
+    <string name="CLIRDefaultOffNextCallOff" msgid="2567998633124408552">"Дуудлага хийгчийн ID хязгаарлагдсан. Дараагийн дуудлага: Хязгаарлагдсан"</string>
+    <string name="serviceNotProvisioned" msgid="8614830180508686666">"Үйлчилгээ провишн хийгдээгүй ."</string>
+    <string name="CLIRPermanent" msgid="3377371145926835671">"Та дуудлага хийгчийн ID тохиргоог солиж чадахгүй."</string>
+    <string name="RestrictedChangedTitle" msgid="5592189398956187498">"Хязгаарлагдсан хандалт өөрчлөгдөв"</string>
+    <string name="RestrictedOnData" msgid="8653794784690065540">"Дата үйлчилгээ хаагдсан."</string>
+    <string name="RestrictedOnEmergency" msgid="6581163779072833665">"Яаралтай үйлчилгээ хаагдсан."</string>
+    <string name="RestrictedOnNormal" msgid="4953867011389750673">"Дуут үйлчилгээ хориглогдсон."</string>
+    <string name="RestrictedOnAllVoice" msgid="3396963652108151260">"Бүх дуут үйлчилгээнүүд хориглогдсон."</string>
+    <string name="RestrictedOnSms" msgid="8314352327461638897">"SMS үйлчилгээ хаагдсан."</string>
+    <string name="RestrictedOnVoiceData" msgid="996636487106171320">"Дуут/дата үйлчилгээ хаагдсан."</string>
+    <string name="RestrictedOnVoiceSms" msgid="1888588152792023873">"Дуут/SMS үйлчилгээнүүд хориглогдсон."</string>
+    <string name="RestrictedOnAll" msgid="5643028264466092821">"Бүх дуут/дата/SMS үйлчилгээнүүд хориглогдсон."</string>
+    <string name="serviceClassVoice" msgid="1258393812335258019">"Дуу"</string>
+    <string name="serviceClassData" msgid="872456782077937893">"Дата"</string>
+    <string name="serviceClassFAX" msgid="5566624998840486475">"Факс"</string>
+    <string name="serviceClassSMS" msgid="2015460373701527489">"SMS"</string>
+    <string name="serviceClassDataAsync" msgid="4523454783498551468">"Синхрон бус"</string>
+    <string name="serviceClassDataSync" msgid="7530000519646054776">"Синк"</string>
+    <string name="serviceClassPacket" msgid="6991006557993423453">"Пакет"</string>
+    <string name="serviceClassPAD" msgid="3235259085648271037">"PAD"</string>
+    <string name="roamingText0" msgid="7170335472198694945">"Роуминг заагч ассан"</string>
+    <string name="roamingText1" msgid="5314861519752538922">"Роуминг заагч унтарсан"</string>
+    <string name="roamingText2" msgid="8969929049081268115">"Роуминг заагч анивчиж байна"</string>
+    <string name="roamingText3" msgid="5148255027043943317">"Хөрш дотор"</string>
+    <string name="roamingText4" msgid="8808456682550796530">"Барилгын гадна"</string>
+    <string name="roamingText5" msgid="7604063252850354350">"Роуминг - Сонгогдсон Систем"</string>
+    <string name="roamingText6" msgid="2059440825782871513">"Роуминг- Боломжтой Систем"</string>
+    <string name="roamingText7" msgid="7112078724097233605">"Роуминг- Холбоотон Түнш"</string>
+    <string name="roamingText8" msgid="5989569778604089291">"Роуминг- Урамшууллын Түнш"</string>
+    <string name="roamingText9" msgid="7969296811355152491">"Рүүминг - Үйлчилгээний Ажиллагаа Бүрэн"</string>
+    <string name="roamingText10" msgid="3992906999815316417">"Рүүминг - Хэсэгчилсэн үйлчилгээний функционал"</string>
+    <string name="roamingText11" msgid="4154476854426920970">"Рүүминг Баннер Асаалттай"</string>
+    <string name="roamingText12" msgid="1189071119992726320">"Баннергүй рүүминг"</string>
+    <string name="roamingTextSearching" msgid="8360141885972279963">"Үйлчилгээг хайж байна…"</string>
+    <string name="cfTemplateNotForwarded" msgid="1683685883841272560">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: дамжуулагдаагүй"</string>
+    <string name="cfTemplateForwarded" msgid="1302922117498590521">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g>"</string>
+    <string name="cfTemplateForwardedTime" msgid="9206251736527085256">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: <xliff:g id="DIALING_NUMBER">{1}</xliff:g> <xliff:g id="TIME_DELAY">{2}</xliff:g> секундын дараа"</string>
+    <string name="cfTemplateRegistered" msgid="5073237827620166285">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: дамжуулагдаагүй"</string>
+    <string name="cfTemplateRegisteredTime" msgid="6781621964320635172">"<xliff:g id="BEARER_SERVICE_CODE">{0}</xliff:g>: дамжуулагдаагүй"</string>
+    <string name="fcComplete" msgid="3118848230966886575">"Онцлог код дуусав."</string>
+    <string name="fcError" msgid="3327560126588500777">"Холболтын асуудал эсвэл буруу функцын код."</string>
+    <string name="httpErrorOk" msgid="1191919378083472204">"Тийм"</string>
+    <string name="httpError" msgid="7956392511146698522">"Сүлжээний алдаа гарав."</string>
+    <string name="httpErrorLookup" msgid="4711687456111963163">"URL олдсонгүй."</string>
+    <string name="httpErrorUnsupportedAuthScheme" msgid="6299980280442076799">"Сайт гэрчлэлийн схем дэмжигдэхгүй."</string>
+    <string name="httpErrorAuth" msgid="1435065629438044534">"Гэрчлэж чадсангүй."</string>
+    <string name="httpErrorProxyAuth" msgid="1788207010559081331">"Прокси сервер гэрчлэл бүтэлгүйтэв."</string>
+    <string name="httpErrorConnect" msgid="8714273236364640549">"Сервертэй холбогдож чадсангүй."</string>
+    <string name="httpErrorIO" msgid="2340558197489302188">"Сервертэй холбогдож чадсангүй. Дараа дахин оролдоно уу."</string>
+    <string name="httpErrorTimeout" msgid="4743403703762883954">"Сервер холболтын хугацаа хэтрэв."</string>
+    <string name="httpErrorRedirectLoop" msgid="8679596090392779516">"Хуудас хэт олон сервер дахин чиглүүлэл агуулж байна."</string>
+    <string name="httpErrorUnsupportedScheme" msgid="5015730812906192208">"Протокол дэмжигдэхгүй байна."</string>
+    <string name="httpErrorFailedSslHandshake" msgid="96549606000658641">"Аюулгүй холбоог үүсгэж чадсангүй."</string>
+    <string name="httpErrorBadUrl" msgid="3636929722728881972">"URL буруу тул хуудсыг нээж чадсангүй."</string>
+    <string name="httpErrorFile" msgid="2170788515052558676">"Файлд хандаж чадсангүй."</string>
+    <string name="httpErrorFileNotFound" msgid="6203856612042655084">"Дуудсан файл олдсонгүй."</string>
+    <string name="httpErrorTooManyRequests" msgid="1235396927087188253">"Хэт олон хүсэлтийг боловсруулж байна. Дараа дахин оролдоно уу."</string>
+    <string name="notification_title" msgid="8967710025036163822">"<xliff:g id="ACCOUNT">%1$s</xliff:g>-н нэвтрэлтийн алдаа"</string>
+    <string name="contentServiceSync" msgid="8353523060269335667">"Синк"</string>
+    <string name="contentServiceSyncNotificationTitle" msgid="397743349191901458">"Синк"</string>
+    <string name="contentServiceTooManyDeletesNotificationDesc" msgid="8100981435080696431">"Хэт олон <xliff:g id="CONTENT_TYPE">%s</xliff:g> устгах."</string>
+    <string name="low_memory" product="tablet" msgid="6494019234102154896">"Таблетийн сан дүүрсэн. Зай чөлөөлөх бол зарим файлыг устгана уу."</string>
+    <string name="low_memory" product="default" msgid="3475999286680000541">"Утасны сан дүүрсэн. Зай чөлөөлөх бол зарим файлыг устгана уу."</string>
+    <string name="me" msgid="6545696007631404292">"Би"</string>
+    <string name="power_dialog" product="tablet" msgid="8545351420865202853">"Таблетын сонголтууд"</string>
+    <string name="power_dialog" product="default" msgid="1319919075463988638">"Утасны сонголт"</string>
+    <string name="silent_mode" msgid="7167703389802618663">"Чимээгүй горим"</string>
+    <string name="turn_on_radio" msgid="3912793092339962371">"Утасгүй холбоог асаах"</string>
+    <string name="turn_off_radio" msgid="8198784949987062346">"Утасгүй сүлжээг унтраах уу"</string>
+    <string name="screen_lock" msgid="799094655496098153">"Дэлгэцний түгжээ"</string>
+    <string name="power_off" msgid="4266614107412865048">"Унтраах"</string>
+    <string name="silent_mode_silent" msgid="319298163018473078">"Хонх унтраах"</string>
+    <string name="silent_mode_vibrate" msgid="7072043388581551395">"Хонхны чичиргээ."</string>
+    <string name="silent_mode_ring" msgid="8592241816194074353">"Хонх ассан"</string>
+    <string name="shutdown_progress" msgid="2281079257329981203">"Унтрааж байна…"</string>
+    <string name="shutdown_confirm" product="tablet" msgid="3385745179555731470">"Таны таблет унтрах болно."</string>
+    <string name="shutdown_confirm" product="default" msgid="649792175242821353">"Таны утас унтрах болно."</string>
+    <string name="shutdown_confirm_question" msgid="2906544768881136183">"Та унтраах уу?"</string>
+    <string name="reboot_safemode_title" msgid="7054509914500140361">"Аюулгүй горимоор дахин асаах"</string>
+    <string name="reboot_safemode_confirm" msgid="55293944502784668">"Та аюулгүй горимоор дахин асаах уу? Энэ нь таны суулгасан гуравдагч талын бүх аппликешныг идэвхгүй болгоно. Та дахин асаах үед тэдгээр нь сэргээгдэнэ."</string>
+    <string name="recent_tasks_title" msgid="3691764623638127888">"Сүүлийн"</string>
+    <string name="no_recent_tasks" msgid="8794906658732193473">"Сүүлийн апп хоосон."</string>
+    <string name="global_actions" product="tablet" msgid="408477140088053665">"Таблет сонголт"</string>
+    <string name="global_actions" product="default" msgid="2406416831541615258">"Утасны сонголтууд"</string>
+    <string name="global_action_lock" msgid="2844945191792119712">"Дэлгэцний түгжээ"</string>
+    <string name="global_action_power_off" msgid="4471879440839879722">"Унтраах"</string>
+    <string name="global_action_bug_report" msgid="7934010578922304799">"Алдаа мэдээллэх"</string>
+    <string name="bugreport_title" msgid="2667494803742548533">"Согог репорт авах"</string>
+    <string name="bugreport_message" msgid="398447048750350456">"Энэ таны төхөөрөмжийн одоогийн статусын талаарх мэдээллийг цуглуулах ба имэйл мессеж болгон илгээнэ. Алдааны мэдэгдлээс эхэлж илгээхэд бэлэн болоход хэсэг хугацаа зарцуулагдана тэвчээртэй байна уу."</string>
+    <string name="global_action_toggle_silent_mode" msgid="8219525344246810925">"Чимээгүй горим"</string>
+    <string name="global_action_silent_mode_on_status" msgid="3289841937003758806">"Дуу хаагдсан"</string>
+    <string name="global_action_silent_mode_off_status" msgid="1506046579177066419">"Дуу асав"</string>
+    <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Нислэгийн горим"</string>
+    <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Нислэгийн горим асав"</string>
+    <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Нислэгийн горим унтарсан"</string>
+    <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string>
+    <string name="safeMode" msgid="2788228061547930246">"Аюулгүй горим"</string>
+    <string name="android_system_label" msgid="6577375335728551336">"Андройд систем"</string>
+    <string name="permgrouplab_costMoney" msgid="5429808217861460401">"Танаас төлбөр авдаг үйлчилгээнүүд"</string>
+    <string name="permgroupdesc_costMoney" msgid="3293301903409869495">"Таны төлбөрт оруулах зүйлийг хийх."</string>
+    <string name="permgrouplab_messages" msgid="7521249148445456662">"Таны мессеж"</string>
+    <string name="permgroupdesc_messages" msgid="7821999071003699236">"Таны SMS, и-мэйл ба бусад мессежийг унших болон бичих."</string>
+    <string name="permgrouplab_personalInfo" msgid="3519163141070533474">"Таны хувийн мэдээлэл"</string>
+    <string name="permgroupdesc_personalInfo" msgid="8426453129788861338">"Таны харилцагчдын картанд хадгалагдсан таны мэдээлэлд шууд хандах."</string>
+    <string name="permgrouplab_socialInfo" msgid="5799096623412043791">"Таны нийтийн мэдээлэл"</string>
+    <string name="permgroupdesc_socialInfo" msgid="7129842457611643493">"Таны харилцагчид болон нийтийн холбооны тухай мэдээлэлд шууд хандах."</string>
+    <string name="permgrouplab_location" msgid="635149742436692049">"Таны байршил"</string>
+    <string name="permgroupdesc_location" msgid="5704679763124170100">"Таны бодит байршлыг хянах."</string>
+    <string name="permgrouplab_network" msgid="5808983377727109831">"Сүлжээний холбоо"</string>
+    <string name="permgroupdesc_network" msgid="4478299413241861987">"Төрөл бүрийн сүлжээний функцүүдэд хандах"</string>
+    <string name="permgrouplab_bluetoothNetwork" msgid="1585403544162128109">"Блютүүт"</string>
+    <string name="permgroupdesc_bluetoothNetwork" msgid="5625288577164282391">"Блютүүтээр төхөөрөмж болон сүлжээнд хандах."</string>
+    <string name="permgrouplab_audioSettings" msgid="8329261670151871235">"Аудио тохиргоо"</string>
+    <string name="permgroupdesc_audioSettings" msgid="2641515403347568130">"Аудио тохиргоо солих."</string>
+    <string name="permgrouplab_affectsBattery" msgid="6209246653424798033">"Батерейд нөлөөлөх"</string>
+    <string name="permgroupdesc_affectsBattery" msgid="6441275320638916947">"Батерей хурдан дуусгах функцийг ашиглах."</string>
+    <string name="permgrouplab_calendar" msgid="5863508437783683902">"Календарь"</string>
+    <string name="permgroupdesc_calendar" msgid="5777534316982184416">"Календар болон үйл явдалд шууд хандах."</string>
+    <string name="permgrouplab_dictionary" msgid="4148597128843641379">"Хэрэглэгчийн толиос унших"</string>
+    <string name="permgroupdesc_dictionary" msgid="7921166355964764490">"Хэрэглэгчийн толь бичгээс үг унших."</string>
+    <string name="permgrouplab_writeDictionary" msgid="8090237702432576788">"Хэрэглэгчийн тольд бичих"</string>
+    <string name="permgroupdesc_writeDictionary" msgid="2711561994497361646">"Хэрэглэгчийн толь бичигт үг нэмэх."</string>
+    <string name="permgrouplab_bookmarks" msgid="1949519673103968229">"Хавчуурга болон түүх"</string>
+    <string name="permgroupdesc_bookmarks" msgid="4169771606257963028">"Хавчуурга болон хөтчийн түүхрүү шууд хандах."</string>
+    <string name="permgrouplab_deviceAlarms" msgid="6117704629728824101">"Сэрүүлэг"</string>
+    <string name="permgroupdesc_deviceAlarms" msgid="4769356362251641175">"Сэрүүлэг тохируулах."</string>
+    <string name="permgrouplab_voicemail" msgid="4162237145027592133">"Дуут шуудан"</string>
+    <string name="permgroupdesc_voicemail" msgid="2498403969862951393">"Дуут шууданд шууд хандах."</string>
+    <string name="permgrouplab_microphone" msgid="171539900250043464">"Микрофон"</string>
+    <string name="permgroupdesc_microphone" msgid="7106618286905738408">"Аудио бичихийн тулд микрофонд шууд хандах."</string>
+    <string name="permgrouplab_camera" msgid="4820372495894586615">"Камер"</string>
+    <string name="permgroupdesc_camera" msgid="2933667372289567714">"Зураг эвсэл бичлэг хийхээр камерт шууд хандах."</string>
+    <string name="permgrouplab_screenlock" msgid="8275500173330718168">"Дэлгэц түгжих"</string>
+    <string name="permgroupdesc_screenlock" msgid="7067497128925499401">"Таны төхөөрөмжийн дэлгэцийн түгжээнд нөлөөлөх чадвар."</string>
+    <string name="permgrouplab_appInfo" msgid="8028789762634147725">"Таны аппликешны мэдээлэл"</string>
+    <string name="permgroupdesc_appInfo" msgid="3950378538049625907">"Таны төхөөрөмжийн бусад аппликешнд нөлөөлөх чадвар."</string>
+    <string name="permgrouplab_wallpaper" msgid="3850280158041175998">"Ханын зураг"</string>
+    <string name="permgroupdesc_wallpaper" msgid="5630417854750540154">"Төхөөрөмжийн ханын зургийн тохиргоог солих."</string>
+    <string name="permgrouplab_systemClock" msgid="406535759236612992">"Цаг"</string>
+    <string name="permgroupdesc_systemClock" msgid="3944359833624094992">"Төхөөрөмжийн цаг эсвэл цагийн бүсийг солих."</string>
+    <string name="permgrouplab_statusBar" msgid="2095862568113945398">"Статус самбар"</string>
+    <string name="permgroupdesc_statusBar" msgid="6242593432226807171">"Төхөөрөмжийн статус самбарын тохиргоог солих."</string>
+    <string name="permgrouplab_syncSettings" msgid="3341990986147826541">"Синк тохиргоо"</string>
+    <string name="permgroupdesc_syncSettings" msgid="7603195265129031797">"Синк тохиргоонд хандах."</string>
+    <string name="permgrouplab_accounts" msgid="3359646291125325519">"Таны акаунт"</string>
+    <string name="permgroupdesc_accounts" msgid="4948732641827091312">"Боломжит акаунтад хандах."</string>
+    <string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"Хардвер контрол"</string>
+    <string name="permgroupdesc_hardwareControls" msgid="4357057861225462702">"Гар төхөөрөмжийн хардверт шууд хандах."</string>
+    <string name="permgrouplab_phoneCalls" msgid="9067173988325865923">"Утсаар ярих"</string>
+    <string name="permgroupdesc_phoneCalls" msgid="7489701620446183770">"Утасны дуудлагыг хянах, бичих болон боловсруулах."</string>
+    <string name="permgrouplab_systemTools" msgid="4652191644082714048">"Системийн багаж"</string>
+    <string name="permgroupdesc_systemTools" msgid="8162102602190734305">"Системрүү доод төвшиний хандах болон удирдах."</string>
+    <string name="permgrouplab_developmentTools" msgid="3446164584710596513">"Хөгжүүлэх багаж"</string>
+    <string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"Зөвхөн аппликешн хөгжүүлэгчдэд хэрэгтэй функц."</string>
+    <string name="permgrouplab_display" msgid="4279909676036402636">"Бусад аппликешн UI"</string>
+    <string name="permgroupdesc_display" msgid="6051002031933013714">"Бусад аппликешны UI-д нөлөөлөх."</string>
+    <string name="permgrouplab_storage" msgid="1971118770546336966">"Сан"</string>
+    <string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"USB санд хандах."</string>
+    <string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"SD картад хандах."</string>
+    <string name="permgrouplab_accessibilityFeatures" msgid="7919025602283593907">"Хялбар хандах функц"</string>
+    <string name="permgroupdesc_accessibilityFeatures" msgid="4205196881678144335">"Туслах технологиос хүсэлт илгээх боломжтой функц"</string>
+    <string name="capability_title_canRetrieveWindowContent" msgid="3901717936930170320">"Цонхны контентыг авах"</string>
+    <string name="capability_desc_canRetrieveWindowContent" msgid="3772225008605310672">"Таны харилцан үйлчлэх цонхны контентоос шалгах."</string>
+    <string name="capability_title_canRequestTouchExploration" msgid="3108723364676667320">"Хүрч танихыг асаах"</string>
+    <string name="capability_desc_canRequestTouchExploration" msgid="5800552516779249356">"Хүрсэн зүйлсийг чангаар дуудах ба дохио ашиглан дэлгэцийг таньж болно."</string>
+    <string name="capability_title_canRequestEnhancedWebAccessibility" msgid="1739881766522594073">"Сайжруулсан веб хандалтыг асаах"</string>
+    <string name="capability_desc_canRequestEnhancedWebAccessibility" msgid="7881063961507511765">"Апп контентод илүү хялбар хандуулахын тулд скриптыг суулгана."</string>
+    <string name="capability_title_canRequestFilterKeyEvents" msgid="2103440391902412174">"Бичсэн текстээ ажиглах"</string>
+    <string name="capability_desc_canRequestFilterKeyEvents" msgid="7463135292204152818">"Кредит картын дугаар болон нууц үг зэрэг хувийн датаг агуулж байна."</string>
+    <string name="permlab_statusBar" msgid="7417192629601890791">"статус самбарыг идэвхгүй болгох болон өөрчлөх"</string>
+    <string name="permdesc_statusBar" msgid="8434669549504290975">"Апп нь статус самбарыг идэвхгүй болгох эсвэл систем дүрсийг нэмэх, хасах боломжтой."</string>
+    <string name="permlab_statusBarService" msgid="7247281911387931485">"статус самбар"</string>
+    <string name="permdesc_statusBarService" msgid="716113660795976060">"Апп нь статус самбар болох боломжтой."</string>
+    <string name="permlab_expandStatusBar" msgid="1148198785937489264">"статус самбарыг нээх/хаах"</string>
+    <string name="permdesc_expandStatusBar" msgid="6917549437129401132">"Апп нь статус самбарыг дэлгэх болон хаах боломжтой."</string>
+    <string name="permlab_processOutgoingCalls" msgid="3906007831192990946">"гарсан дуудлагыг чиглэлийг өөрчлөх"</string>
+    <string name="permdesc_processOutgoingCalls" msgid="5331318931937402040">"Апп нь дуудлага хийх болон залгаж байгаа дугаарыг өөрчлөх боломжтой. Энэ зөвшөөрөл нь апп-г залгасан дуудлагыг хаах, хянах болон дахин чиглүүлэх боломжтой болгодог."</string>
+    <string name="permlab_receiveSms" msgid="8673471768947895082">"текст мессеж(SMS) хүлээж авах"</string>
+    <string name="permdesc_receiveSms" msgid="6424387754228766939">"Апп нь SMS мессежийг хүлээн авах болон гүйцэтгэх боломжтой. Ингэснээр апп нь таны төхөөрөмжрүү илгээсэн мессежийг танд үзүүлэхгүйгээр хянах болон устгаж чадна."</string>
+    <string name="permlab_receiveMms" msgid="1821317344668257098">"текст мессеж(МMS) хүлээж авах"</string>
+    <string name="permdesc_receiveMms" msgid="533019437263212260">"Апп нь MMS мессежийг хүлээн авах болон гүйцэтгэх боломжтой. Ингэснээр апп нь таны төхөөрөмжрүү илгээсэн мессежийг танд үзүүлэхгүйгээр хянах болон устгаж чадна."</string>
+    <string name="permlab_receiveEmergencyBroadcast" msgid="1803477660846288089">"Яаралтай өргөн дамжууллыг хүлээн авах"</string>
+    <string name="permdesc_receiveEmergencyBroadcast" msgid="848524070262431974">"Апп нь яаралтай өргөн дамжууллын мессежийг хүлээн авах болон гүйцэтгэх боломжтой. Энэ зөвшөөрөл нь зөвхөн систем аппликешнд л боломжтой."</string>
+    <string name="permlab_readCellBroadcasts" msgid="1598328843619646166">"үүрэн өргөн дамжууллын мессеж унших"</string>
+    <string name="permdesc_readCellBroadcasts" msgid="6361972776080458979">"Апп нь таны төхөөрөмжийн хүлээн авсан үүрэн өргөн дамжуулах мессежийг унших боломжтой. Үүрэн өргөн дамжууллын мэдэгдэл нь яаралтай нөхцөл байдлыг анхааруулах зорилгоор зарим байршлуудад хүрдэг. Хортой апп нь яаралтай үүрэн өргөн дамжууллыг хүлээн авсан үед таны төхөөрөмжийн ажиллагаа болон чадамжид нөлөөлөх боломжтой."</string>
+    <string name="permlab_sendSms" msgid="5600830612147671529">"SMS мессеж илгээх"</string>
+    <string name="permdesc_sendSms" msgid="7094729298204937667">"Апп нь SMS мессеж илгээх боломжтой. Энэ нь санаандгүй төлбөрт оруулж болзошгүй. Хортой апп нь таны зөвшөөрөлгүйгээр мессеж илгээн таныг төлбөрт оруулж болзошгүй."</string>
+    <string name="permlab_sendRespondViaMessageRequest" msgid="8713889105305943200">"мессежээр хариулах үйл явдалыг илгээх"</string>
+    <string name="permdesc_sendRespondViaMessageRequest" msgid="7107648548468778734">"Апп нь дуудлага ирэх үед мессежээр хариу өгөх үйл явдлыг зохицуулахын тулд бусад мессежийн апп-д хүсэлт илгээх боломжтой."</string>
+    <string name="permlab_readSms" msgid="8745086572213270480">"таны текст мессежийг унших(SMS эсвэл MMS)"</string>
+    <string name="permdesc_readSms" product="tablet" msgid="2467981548684735522">"Апп нь таны утас эсвэл SIM картанд хадгалагдсан SMS мессежийг унших боломжтой. Энэ нь апп-д бүх мессежийг контент эсвэл нууц эсэхээс нь үл хамааран унших боломжийг олгоно."</string>
+    <string name="permdesc_readSms" product="default" msgid="3695967533457240550">"Апп нь таны утас эсвэл SIM картанд хадгалагдсан SMS мессежийг унших боломжтой. Энэ нь апп-д бүх мессежийг контент эсвэл нууц эсэхээс нь үл хамааран унших боломжийг олгоно."</string>
+    <string name="permlab_writeSms" msgid="3216950472636214774">"Текст мессежийг засах (SMS эсвэл MMS)"</string>
+    <string name="permdesc_writeSms" product="tablet" msgid="5160413947794501538">"Апп нь таны таблет эсвэл SIM картанд хадгалагдсан SMS мессежрүү бичих боломжтой. Хортой апп нь таны мессежүүдийг устгах боломжтой."</string>
+    <string name="permdesc_writeSms" product="default" msgid="7268668709052328567">"Апп нь таны утас эсвэл SIM картанд хадгалагдсан SMS мессежрүү бичих боломжтой. Хортой апп нь таны мессежүүдийг устгах боломжтой."</string>
+    <string name="permlab_receiveWapPush" msgid="5991398711936590410">"текст мессеж(WAP) хүлээн авах"</string>
+    <string name="permdesc_receiveWapPush" msgid="748232190220583385">"Апп нь WAP мессежийг хүлээн авах болон биелүүлэх боломжтой. Энэ зөвшөөрөл нь танд илгээсэн мессежийг танд харуулалгүйгээр хянах эсвэл устгах боломжийг агуулна."</string>
+    <string name="permlab_getTasks" msgid="6466095396623933906">"ажиллаж байгаа апп-г дуудах"</string>
+    <string name="permdesc_getTasks" msgid="7454215995847658102">"Апп нь одоо ажиллаж байгаа болон сүүлд ажилласан даалгаврын талаарх мэдээллийг авах боломжтой. Ингэснээр апп нь төхөөмж дээрх ямар аппликешнүүд ашиглагдсан талаарх мэдээлийг олох боломжтой."</string>
+    <string name="permlab_interactAcrossUsers" msgid="7114255281944211682">"хэрэглэгчидтэй харилцан үйлчлэлцэх"</string>
+    <string name="permdesc_interactAcrossUsers" msgid="364670963623385786">"Апп нь төхөөрөмж дээрх ялгаатай хэрэглэгчдэд үйлдэл гүйцэтгэх боломжтой. Хортой апп нь энийг ашиглан хэрэглэгч хоорондын хамгаалалтыг зөрчих боломжтой."</string>
+    <string name="permlab_interactAcrossUsersFull" msgid="2567734285545074105">"хэрэглэгчидтэй харилцан үйлчлэлцэх бүрэн зөвшөөрөл"</string>
+    <string name="permdesc_interactAcrossUsersFull" msgid="376841368395502366">"Бүх хэрэглэгчдэд боломжит бүх харилцан үйлдлийг зөвшөөрнө."</string>
+    <string name="permlab_manageUsers" msgid="1676150911672282428">"хэрэгчлэгч удирдах"</string>
+    <string name="permdesc_manageUsers" msgid="8409306667645355638">"Апп нь төхөөрөмж дээр асуулга, үүсгэлт болон устгалт зэргийг багтаасан хэрэглэгч удирдах боломжтой."</string>
+    <string name="permlab_getDetailedTasks" msgid="6229468674753529501">"ажиллаж байгаа апп-н дэлгэрэнгүйг авах"</string>
+    <string name="permdesc_getDetailedTasks" msgid="153824741440717599">"Апп нь одоо ажиллаж байгаа болон сүүлд ажилласан даалгаврын талаарх дэлгэрэнгүй мэдээллийг авах боломжтой. Хортой апп нь бусад апп-н хувийн мэдээлийг олох боломжтой."</string>
+    <string name="permlab_reorderTasks" msgid="2018575526934422779">"ажиллаж байгаа апп-уудыг дахин эрэмбэлэх"</string>
+    <string name="permdesc_reorderTasks" msgid="7734217754877439351">"Апп нь даалгавруудыг нүүрлүү болон арлуу зөөх боломжтой. Апп нь энийг таны оролцоогүйгээр хийж болзошгүй"</string>
+    <string name="permlab_removeTasks" msgid="6821513401870377403">"ажиллаж байгаа апп-г зогсоох"</string>
+    <string name="permdesc_removeTasks" msgid="1394714352062635493">"Апп нь даалгаврууд устгах болон тэдгээрийн апп-г зогсоох боломжтой. Хортой апп нь бусад апп-н ажиллагааг тасалдуулж болзошгүй."</string>
+    <string name="permlab_manageActivityStacks" msgid="7391191384027303065">"идэвхжилтийн стекүүдийг удирдах"</string>
+    <string name="permdesc_manageActivityStacks" msgid="1615881933034084440">"Апп-д бусад апп-уудын ажилладаг идэвхжилтийн стекүүдийг нэмэх, хасах буюу өөрчлөх боломж олгоно. Хорлонтой апп-ууд бусад апп-уудын авирт нөлөөлөх боломжтой."</string>
+    <string name="permlab_startAnyActivity" msgid="2918768238045206456">"ямарч активитиг эхлүүлэх"</string>
+    <string name="permdesc_startAnyActivity" msgid="997823695343584001">"Апп нь зөвшөөрөл хамгаалалтай эсвэл экспорт хийсэн статусаас үл хамааран ямарч активитиг эхлүүлэх боломжтой."</string>
+    <string name="permlab_setScreenCompatibility" msgid="6975387118861842061">"дэлгэцний зохицолыг тохируулах"</string>
+    <string name="permdesc_setScreenCompatibility" msgid="692043618693917374">"Апп нь бусад аппликешны дэлгэцний тохиромжит горимыг удирдах боломжтой.  Хортой аппликешн нь бусад аппликешны чадамжийг эвдэх боломжтой."</string>
+    <string name="permlab_setDebugApp" msgid="3022107198686584052">"апп дебагыг идэвхжүүлэх"</string>
+    <string name="permdesc_setDebugApp" msgid="4474512416299013256">"Апп нь бусад апп-г дебаг хийхийг асаах боломжтой. Хортой апп нь энийг ашиглан бусад апп-г зогсоох боломжтой."</string>
+    <string name="permlab_changeConfiguration" msgid="4162092185124234480">"системийн дэлгэцний тохиргоог солих"</string>
+    <string name="permdesc_changeConfiguration" msgid="4372223873154296076">"Апп нь нутагшил эсвэл фонтын хэмжээ зэрэг одоогийн тохиргоог солих боломжтой."</string>
+    <string name="permlab_enableCarMode" msgid="5684504058192921098">"машины горимыг идэвхжүүлэх"</string>
+    <string name="permdesc_enableCarMode" msgid="4853187425751419467">"Апп нь машины горимыг идэвхжүүлэх боломжтой."</string>
+    <string name="permlab_killBackgroundProcesses" msgid="3914026687420177202">"бусад апп-г хаах"</string>
+    <string name="permdesc_killBackgroundProcesses" msgid="4593353235959733119">"Апп нь бусад апп-н арын процессыг дуусгах боломжтой. Энэ бусад апп-г зогсоох боломжийг олгоно."</string>
+    <string name="permlab_forceStopPackages" msgid="2329627428832067700">"бусад апп-г хүчээр зогсоох"</string>
+    <string name="permdesc_forceStopPackages" msgid="5253157296183940812">"Апп нь бусад апп-г хүчээр зогсоох боломжтой."</string>
+    <string name="permlab_forceBack" msgid="652935204072584616">"апп-г хүчээр унтраах"</string>
+    <string name="permdesc_forceBack" msgid="3892295830419513623">"Апп нь нүүрэнд ажиллаж байгаа активитиг хүчээр зогсоох болгон арлуу явуулах боломжтой. Энгийн апп-д хэрэглэхгүй."</string>
+    <string name="permlab_dump" msgid="1681799862438954752">"системийн дотоод статусыг дуудах"</string>
+    <string name="permdesc_dump" msgid="1778299088692290329">"Апп нь системийн дотоод статусыг дуудах боломжтой. Хортой апп нь энийг ашиглах шаардлагагүй аюулгүй байдлын болон хувийн мэдээллийг дуудах боломжтой."</string>
+    <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"Дэлгэцийн контентыг унших"</string>
+    <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Апп нь идэвхтэй цонхны контентыг авах боломжтой. Хортой апп нь цонхны контентыг бүхэлд авах болон нууц үгнээс бусад бүх текстийг шалгаж болзошгүй"</string>
+    <string name="permlab_temporary_enable_accessibility" msgid="2312612135127310254">"Хялбар байдлыг түр идэвхтэй болгох"</string>
+    <string name="permdesc_temporary_enable_accessibility" msgid="8079456293182975464">"Аппликешн нь төхөөрөмжийн хялбар байдлыг түр зуур идэвхжүүлэх боломжтой. Хортой апп нь хэрэглэгчийн зөвшөөрөлгүйгээр хялбар байдлыг идэвхжүүлж болзошгүй."</string>
+    <string name="permlab_retrieve_window_info" msgid="8532295199112519378">"цонхны мэдээллийг унших"</string>
+    <string name="permdesc_retrieve_window_info" msgid="4998836370424186849">"Аппликешн нь цонхны менежерээс цонхны талаар мэдээллийг дуудах боломжтой. Хортой апп нь дотоод системийн хэрэглээнд зориулагдсан мэдээллийг дуудаж болзошгүй."</string>
+    <string name="permlab_filter_events" msgid="8675535648807427389">"үйл явдлыг шүүх"</string>
+    <string name="permdesc_filter_events" msgid="8006236315888347680">"Аппликешн нь хэрэглэгчийн бүх үйл явдалын илгээгдэхээс өмнөх урсгалыг шүүж байгаа оролтын шүүлтйиг бүртгэх боломжтой. Хортой апп нь хэрэглэгчийн интервэшнгүйгээр системийн UI-г удирдах боломжтой."</string>
+    <string name="permlab_magnify_display" msgid="5973626738170618775">"дэлгэц томруулах"</string>
+    <string name="permdesc_magnify_display" msgid="7121235684515003792">"Аппликешн нь дэлгэцний контентийг өсгөх боломжтой. Хортой апп нь дэлгэцийн контентыг төхөөрөмжнөөс ашиглаж болохгүй болгон хувиргах боломжтой."</string>
+    <string name="permlab_shutdown" msgid="7185747824038909016">"хэсэгчилсэн унтраалт"</string>
+    <string name="permdesc_shutdown" msgid="7046500838746291775">"Активити менежерийг унтраана. Бүрэн унтраалтыг хийхгүй."</string>
+    <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"апп шилжүүлэхийг хориглох"</string>
+    <string name="permdesc_stopAppSwitches" msgid="8262195802582255021">"Хэрэглэгч бусад апп-руу сэлгэхийг хориглох."</string>
+    <string name="permlab_getTopActivityInfo" msgid="2537922311411546016">"одоогийн апп-н мэдээллийг авах"</string>
+    <string name="permdesc_getTopActivityInfo" msgid="8153651434145132505">"Эзэмшигч нь дэлгэцний нүүрэнд байгаа одоогийн аппликешн болон үйлчилгээний талаарх хувийн мэдээллийг унших боломжтой."</string>
+    <string name="permlab_runSetActivityWatcher" msgid="892239094867182656">"бүх апп-ын эхлэлийг хянах болон удирдах"</string>
+    <string name="permdesc_runSetActivityWatcher" msgid="6003603162578577406">"Апп нь систем активитиг яаж эхлүүлж байгааг хянах болон удирдан боломжтой. Хортой апп нь системд бүрэн нөлөөлж болзошгүй. Энэ эрх нь зөвхөн хөгжүүлэлтийн үед л хэрэгтэй ба энгийн хэрэглээнд огт хэрэггүй."</string>
+    <string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"багц хасагдсан өргөн дамжууллыг илгээх"</string>
+    <string name="permdesc_broadcastPackageRemoved" msgid="6621901216207931089">"Апп нь апп багц устгагдсан талаарх мэдэгдлийг өргөн дамжуулах боломжтой. Хортой апп энийг ашиглан бусад ажиллаж байгаа апп-г зогсоох боломжтой."</string>
+    <string name="permlab_broadcastSmsReceived" msgid="5689095009030336593">"SMS-хүлээн авав өргөн дамжууллыг илгээх"</string>
+    <string name="permdesc_broadcastSmsReceived" msgid="4152037720034365492">"Апп нь SMS мессеж хүлээн авсан талаарх мэдэгдлийг өргөн дамжуулах боломжтой. Хортой апп энийг ашиглан ирсэн SMS мессежийг хуурамчаар хийх боломжтой."</string>
+    <string name="permlab_broadcastWapPush" msgid="3145347413028582371">"WAP-PUSH-хүлээн авав өргөн дамжууллыг илгээх"</string>
+    <string name="permdesc_broadcastWapPush" msgid="4783402525039442729">"Аппликешн нь WAP PUSH мессеж хүлээж авсан мэдэгдлийг өргөн дамжуулах боломжтой. Хортой апп нь энийг ашиглан MMS мессеж хүлээн авсан гэж хуурамчаар мэдэгдэх эсвэл хортой хувьсагч агуулсан веб хуудасны контентыг чимээгүй орлуулах боломжтой."</string>
+    <string name="permlab_setProcessLimit" msgid="2451873664363662666">"ажиллаж байгаа процессийн тоог хязгаарлах"</string>
+    <string name="permdesc_setProcessLimit" msgid="7318061314040879542">"Апп нь нэг зэрэг ажиллах процессийн тооны дээд утгыг удирдах боломжтой. Энгийн апп-д хэзээ ч ашиглагдахгүй."</string>
+    <string name="permlab_setAlwaysFinish" msgid="550958507798796965">"арын апп-г хүчээр хаах"</string>
+    <string name="permdesc_setAlwaysFinish" msgid="7471310652868841499">"Апп нь активитинүүд арын болонгуутаа дуусах эсэхийг удирдах боломжтой. Энгийн апп-д хэрэглэгдэхгүй."</string>
+    <string name="permlab_batteryStats" msgid="2789610673514103364">"батерейны статистикийг унших"</string>
+    <string name="permdesc_batteryStats" msgid="5897346582882915114">"Аппликешн нь батерей хэрэглээний доод-төвшиний одоогийн датаг унших боломжтой. Аппликешнд таны ашиглаж байгаа апп-н талаарх дэлгэрэнгүй мэдээллийг олох боломжийг олгоно."</string>
+    <string name="permlab_updateBatteryStats" msgid="3719689764536379557">"батерейн статистикийг өөрчлөх"</string>
+    <string name="permdesc_updateBatteryStats" msgid="6862817857178025002">"Апп нь батерейн цуглуулагдсан статистикийг өөрчлөх боломжтой. Энгийн апп-д шаардлагагүй."</string>
+    <string name="permlab_getAppOpsStats" msgid="1508779687436585744">"апп-н ажиллагааны статистикийг авах"</string>
+    <string name="permdesc_getAppOpsStats" msgid="6243887041577912877">"Апп нь аппликешны ажиллагааны цуглуулсан статистикийг дуудах боломжтой. Энгийн апп-д ашиглагдахгүй."</string>
+    <string name="permlab_updateAppOpsStats" msgid="8829097373851521505">"апп ажиллагааны статистикийг өөрчлөх"</string>
+    <string name="permdesc_updateAppOpsStats" msgid="50784596594403483">"Апп нь аппликешны ажиллагааны цуглуулсан статистикийг өөрчлөх боломжтой. Энгийн апп-д ашиглагдахгүй."</string>
+    <string name="permlab_backup" msgid="470013022865453920">"систем нөөшлөлт болон сэргээлтийг удирдах"</string>
+    <string name="permdesc_backup" msgid="6912230525140589891">"Апп нь системийн нөөшлөх болон сэргээх тогтолцоог удирдах боломжтой. Энгийн апп-уудад хэрэглэгдэхгүй."</string>
+    <string name="permlab_confirm_full_backup" msgid="5557071325804469102">"бүтэн нөөшлөлтийг бататгах эсвэл ажиллагааг сэргээх"</string>
+    <string name="permdesc_confirm_full_backup" msgid="1748762171637699562">"Апп нь бүрэн нөөшлөлтийг баталгаажуулах UI-г эхлүүлэх боломжтой. Энгийн апп-д ашиглагдахгүй."</string>
+    <string name="permlab_internalSystemWindow" msgid="2148563628140193231">"эрхжүүлэгдээгүй цонхыг үзүүлэх"</string>
+    <string name="permdesc_internalSystemWindow" msgid="7458387759461466397">"Апп нь дотоод системийн хэрэглэгчийн интерфейст ашиглагдах цонхыг үүсгэх боломжтой. Энгийн апп-д ашиглагдахгүй."</string>
+    <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"бусад апп-р зурах"</string>
+    <string name="permdesc_systemAlertWindow" msgid="8584678381972820118">"Апп нь бусад аппликешн эсвэл хэрэглэгчийн интерфейсын дээд талд зурах боломжтой. Эдгээр нь бүх аппликешны интерфейсыг ашиглахад саад болох эсвэл   бусад аппликешн дээр таны харж байгааг солих боломжтой."</string>
+    <string name="permlab_setAnimationScale" msgid="2805103241153907174">"глобал энимешн хурдыг өөрчлөх"</string>
+    <string name="permdesc_setAnimationScale" msgid="7690063428924343571">"Апп нь ямар ч үед глобал энимешн хурдыг(хурдан удаан энимешн) солих боломжтой."</string>
+    <string name="permlab_manageAppTokens" msgid="1286505717050121370">"апп бүтвэрийг удирдах"</string>
+    <string name="permdesc_manageAppTokens" msgid="8043431713014395671">"Апп нь өөрийн нормал Z эрэмбийг дамжуулах замаар өөрсдийн бүтвэрийг үүсгэх болон удирдах боломжтой. Энгийн апп-д хэрэглэгдэхгүй"</string>
+    <string name="permlab_freezeScreen" msgid="4708181184441880175">"дэлгэцийг хөдөлгөөнгүй болгох"</string>
+    <string name="permdesc_freezeScreen" msgid="8558923789222670064">"Аппликешн нь бүтэн дэлгэцрүү шилжихэд дэлгэцийг хөдөлгөөнгүй болгох боломжтой."</string>
+    <string name="permlab_injectEvents" msgid="1378746584023586600">"товч болон контрол товч дарах"</string>
+    <string name="permdesc_injectEvents" product="tablet" msgid="206352565599968632">"Алл нь өөрийн оролтын үйл явдлыг(товч дарагдах г.м) бусад апп-д дамжуулах боломжтой. Хортой апп нь энийг ашиглан таблетыг удирдах боломжтой."</string>
+    <string name="permdesc_injectEvents" product="default" msgid="653128057572326253">"Алл нь өөрийн оролтын үйл явдлыг(товч дарагдах г.м) бусад апп-д дамжуулах боломжтой. Хортой апп нь энийг ашиглан утсыг удирдах боломжтой."</string>
+    <string name="permlab_readInputState" msgid="469428900041249234">"таны хийж байгаа үйлдэл болон бичиж байгааг бичлэг хийх"</string>
+    <string name="permdesc_readInputState" msgid="8387754901688728043">"Апп нь бусад апп-тай харилцан үйлчилж(нууц үг оруулах) таны дарсан товчийг ажиглах боломжтой. Энгийн апп-д хэрэглэгдэхгүй."</string>
+    <string name="permlab_bindInputMethod" msgid="3360064620230515776">"оролтын аргатай холбох"</string>
+    <string name="permdesc_bindInputMethod" msgid="3250440322807286331">"Эзэмшигч нь оруулах аргын дээд-төвшиний интерфейстэй холбох боломжтой. Энгийн апп-д хэрэглэгдэхгүй."</string>
+    <string name="permlab_bindAccessibilityService" msgid="5357733942556031593">"хандалтын үйлчилгээнд холбогдох"</string>
+    <string name="permdesc_bindAccessibilityService" msgid="7034615928609331368">"Эзэмшигч нь хандах үйлчилгээний дээд-төвшиний интерфейстэй холбох боломжтой. Энгийн апп-д шаардлагагүй."</string>
+    <string name="permlab_bindPrintService" msgid="8462815179572748761">"хэвлэх үйлчилгээтэй холбох"</string>
+    <string name="permdesc_bindPrintService" msgid="7960067623209111135">"Эзэмшигчид хэвлэх үйлчилгээний дээд-түвшний интерфейстэй холбох боломж олгоно. Энгийн апп-уудад хэзээ ч ашиглагдахгүй."</string>
+    <string name="permlab_accessAllPrintJobs" msgid="1120792468465711159">"бүх хэвлэх ажилд хандалт хийх"</string>
+    <string name="permdesc_accessAllPrintJobs" msgid="2978185311041864762">"Эзэмшигчид өөр апп-аас үүсгэсэн хэвлэх ажилд хандалт хийх боломж олгоно. Энгийн апп-уудад хэзээ ч ашиглагдахгүй."</string>
+    <string name="permlab_bindNfcService" msgid="2752731300419410724">"NFC үйлчилгээтэй холбох"</string>
+    <string name="permdesc_bindNfcService" msgid="6120647629174066862">"Эзэмшигчид NFC картуудыг дуурайлгадаг аппликешнүүдийг холбох боломж олгоно. Энгийн апп-уудад хэзээ ч шаардагдахгүй."</string>
+    <string name="permlab_bindTextService" msgid="7358378401915287938">"текст үйлчилгээтэй холбох"</string>
+    <string name="permdesc_bindTextService" msgid="8151968910973998670">"Эзэмшигч нь текст үйлчилгээний(ж.нь. SpellCheckerService) дээд-төвшиний интерфейстэй холбох боломжтой. Энгийн апп-д хэрэглэгдэхгүй."</string>
+    <string name="permlab_bindVpnService" msgid="4708596021161473255">"VPN үйлчилгээтэй холбох"</string>
+    <string name="permdesc_bindVpnService" msgid="2067845564581693905">"Эзэмшигч нь VPN үйлчилгээний дээд-төвшиний интерфейстэй холбох боломжтой. Энгийн апп-д шаардлагагүй."</string>
+    <string name="permlab_bindWallpaper" msgid="8716400279937856462">"ханын зурагтай холбох"</string>
+    <string name="permdesc_bindWallpaper" msgid="7108428692595491668">"Эзэмшигч нь ханын зурагны дээд-төвшиний интерфейстэй холбох боломжтой. Энгийн апп-уудад шаардлагагүй."</string>
+    <string name="permlab_bindRemoteViews" msgid="5697987759897367099">"виджет үйлчилгээтэй холбох"</string>
+    <string name="permdesc_bindRemoteViews" msgid="4717987810137692572">"Эзэмшигч нь виджет үйлчилгээний дээд-төвшиний интерфейстэй холбох боломжтой. Энгийн апп-д шаардлагагүй."</string>
+    <string name="permlab_bindDeviceAdmin" msgid="8704986163711455010">"төхөөрөмжийн админтай харилцан үйлчлэх"</string>
+    <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"Эзэмшигч нь төхөөрөмжийн админруу интент илгээх боломжтой. Энгийн апп-д шаардлагагүй."</string>
+    <string name="permlab_manageDeviceAdmins" msgid="4248828900045808722">"төхөөрөмжийн админ нэмэх, хасах"</string>
+    <string name="permdesc_manageDeviceAdmins" msgid="5025608167709942485">"Эзэмшигч нь идэвхтэй төхөөрөмжийн администраторыг нэмэх, хасах боломжтой. Энгийн апп-д шаардлагагүй."</string>
+    <string name="permlab_setOrientation" msgid="3365947717163866844">"дэлгэцний чиглэлийг солих"</string>
+    <string name="permdesc_setOrientation" msgid="3046126619316671476">"Апп нь ямар ч үед дэлгэцний эргэлтийг солих боломжтой. Энгийн аппликешнд хэзээ ч ашиглахгүй."</string>
+    <string name="permlab_setPointerSpeed" msgid="9175371613322562934">"заагчийн хурдыг солих"</string>
+    <string name="permdesc_setPointerSpeed" msgid="6866563234274104233">"Апп нь хулгана эсвэл хөдлөх самбарын заагчийн хурдыг ямарч үед солих боломжтой. Энгийн апп-д хэрэглэгдэхгүй."</string>
+    <string name="permlab_setKeyboardLayout" msgid="4778731703600909340">"гарын схемийг солих"</string>
+    <string name="permdesc_setKeyboardLayout" msgid="8480016771134175879">"Апп нь гарын схемыг солих боломжтой. Энгийн апп-д хэрэглэгдэхгүй."</string>
+    <string name="permlab_signalPersistentProcesses" msgid="4539002991947376659">"аппруу Linux дохио илгээх"</string>
+    <string name="permdesc_signalPersistentProcesses" msgid="4896992079182649141">"Апп нь бүх байнгын процессруу хангамжийн дохиог илгээх хүсэлтийг хийх боломжтой."</string>
+    <string name="permlab_persistentActivity" msgid="8841113627955563938">"апп-г байнга ажиллуулах"</string>
+    <string name="permdesc_persistentActivity" product="tablet" msgid="8525189272329086137">"Апп нь өөрийн хэсгийн санах ойд байнга байлгах боломжтой. Энэ нь бусад апп-уудын ашиглах санах ойг хязгаарлан таблетыг удаашруулах болно."</string>
+    <string name="permdesc_persistentActivity" product="default" msgid="4384760047508278272">"Апп нь өөрийн хэсгийг санах ойд байнга байлгах боломжтой. Энэ нь бусад апп-уудын ашиглах санах ойг хязгаарлан утсыг удаашруулах болно."</string>
+    <string name="permlab_deletePackages" msgid="184385129537705938">"апп устгах"</string>
+    <string name="permdesc_deletePackages" msgid="7411480275167205081">"Апп нь Андройд багцийг устгах боломжтой. Хортой апп нь энийг ашиглан чухал апп-г устгах боломжтой."</string>
+    <string name="permlab_clearAppUserData" msgid="274109191845842756">"бусад апп-н датаг устгах"</string>
+    <string name="permdesc_clearAppUserData" msgid="4625323684125459488">"Апп нь хэрэглэгчийн датаг арилгах боломжтой."</string>
+    <string name="permlab_deleteCacheFiles" msgid="3128665571837408675">"бусад апп-н кешээс устгах"</string>
+    <string name="permdesc_deleteCacheFiles" msgid="3812998599006730196">"Апп нь кеш файлаас устгах боломжтой."</string>
+    <string name="permlab_getPackageSize" msgid="7472921768357981986">"апп сангийн хэмжээг хэмжих"</string>
+    <string name="permdesc_getPackageSize" msgid="3921068154420738296">"Апп нь өөрийн код, дата болон кеш хэмжээг унших боломжтой"</string>
+    <string name="permlab_installPackages" msgid="2199128482820306924">"апп-г шууд суулгах"</string>
+    <string name="permdesc_installPackages" msgid="5628530972548071284">"Апп нь шинэ эсвэл шинэчлэгдсэн Андройд багцийг суулгах боломжтой. Хортой апп нь энийг ашиглан дурын эрхтэй шинэ апп-г суулгах боломжтой."</string>
+    <string name="permlab_clearAppCache" msgid="7487279391723526815">"бүх апп-н кеш датаг устгах"</string>
+    <string name="permdesc_clearAppCache" product="tablet" msgid="8974640871945434565">"Апп нь бусад аппликешны кеш директороос файл устган таблетын санг чөлөөлөх боломжтой. Энэ  нь бусад аппликешнд нөлөөлж, тэдгээр нь эхлэхдээ шаардлагатай датагаа дахин дуудах тул удааширч болзошгүй."</string>
+    <string name="permdesc_clearAppCache" product="default" msgid="2459441021956436779">"Апп нь бусад аппликешны кеш директороос файл устган утасны санг чөлөөлөх боломжтой. Энэ нь бусад аппликешнд нөлөөлж, тэдгээр нь эхлэхдээ шаардлагатай датагаа дахин дуудах тул удааширч болзошгүй."</string>
+    <string name="permlab_movePackage" msgid="3289890271645921411">"апп нөөцийг шилжүүлэх"</string>
+    <string name="permdesc_movePackage" msgid="319562217778244524">"Апп нь апп нөөцийг дотроос гадна медиаруу болон эсрэгээр нь зөөх боломжтой."</string>
+    <string name="permlab_readLogs" msgid="6615778543198967614">"нууц лог дата унших"</string>
+    <string name="permdesc_readLogs" product="tablet" msgid="82061313293455151">"Апп нь системийн төрөл бүрийн лог файлыг унших боломжтой. Энэ нь та таблет дээрээ юу хийсэн талаарх хувийн болон нууц мэдээллийг олох боломжтой болгоно."</string>
+    <string name="permdesc_readLogs" product="default" msgid="2063438140241560443">"Апп нь системийн төрөл бүрийн лог файлыг унших боломжтой. Энэ нь та утсан дээрээ юу хийсэн талаарх хувийн болон нууц мэдээллийг олох боломжтой болгоно."</string>
+    <string name="permlab_anyCodecForPlayback" msgid="715805555823881818">"тоглуулахын тулд дурын медиа шифрлэгчийг ашиглах"</string>
+    <string name="permdesc_anyCodecForPlayback" msgid="8283912488433189010">"Апп нь тоглуулах үедээ код тайлахдаа суулгагдсан ямарч медиа код тайлагчийг ашиглах боломжтой."</string>
+    <string name="permlab_manageCaCertificates" msgid="1678391896786882014">"итгэмжлэгдсэн жуухуудыг удирдах"</string>
+    <string name="permdesc_manageCaCertificates" msgid="4015644047196937014">"Апп-д CA сертификатуудыг итгэмжлэгдсэн жуух байдлаар суулгах болон устгахыг зөвшөөрнө."</string>
+    <string name="permlab_diagnostic" msgid="8076743953908000342">"оношлох грүпийн эзэмшдэг нөөцрүү унших/бичих"</string>
+    <string name="permdesc_diagnostic" msgid="6608295692002452283">"Апп нь оношлох грүпийн эзэмшдэг, жишээ нь /dev доторх файлууд, дурын  нөөцийг унших бичих боломжтой.Энэ нь системийн тогвортой байдал болон аюулгүй байдалд бодитоор нөлөөлнө. Энэ нь үйлдвэрлэгч болон операторын хардверт-зориулсан оношлогоонд ашиглагдана."</string>
+    <string name="permlab_changeComponentState" msgid="6335576775711095931">"апп компонентыг идэвхжүүлэх эсвэл идэвхгүй болгох"</string>
+    <string name="permdesc_changeComponentState" product="tablet" msgid="8887435740982237294">"Апп нь өөр апп-н компонент идэвхтэй эсэхийг солих боломжтой. Хортой апп нь энийг ашиглан таблетын чухал чадамжийг идэвхгүй болгож болзошгүй. Зөвшөөрөл нь аппликешн компонентыг тогтворгүй, ашиглаж болохгүй, тохиромжгүй төлөвт оруулах боломжтой тул ашиглахдаа болгоомжтой байх шаардлагатай."</string>
+    <string name="permdesc_changeComponentState" product="default" msgid="1827232484416505615">"Апп нь өөр апп-н компонент идэвхтэй эсэхийг солих боломжтой. Хортой апп нь энийг ашиглан утасны чухал чадамжийг идэвхгүй болгож болзошгүй. Зөвшөөрөл нь аппликешн компонентыг тогтворгүй, ашиглаж болохгүй, тохиромжгүй төлөвт оруулах боломжтой тул ашиглахдаа болгоомжтой байх шаардлагатай."</string>
+    <string name="permlab_grantRevokePermissions" msgid="4627315351093508795">"зөвшөөрөл олгох эсвэл цуцлах"</string>
+    <string name="permdesc_grantRevokePermissions" msgid="4088642654085850662">"Аппликешн нь өөртэй болон бусад аппликешнд тусгай зөвшөөрлийг олгох болон цуцлах боломжтой. Хортой аппликешн нь энийг ашиглан таны олгоогүй эрхэнд хандах боломжтой."</string>
+    <string name="permlab_setPreferredApplications" msgid="8463181628695396391">"үндсэн апп-г тохируулах"</string>
+    <string name="permdesc_setPreferredApplications" msgid="4973986762241783712">"Апп нь таны тусгай апп-уудыг өөрчлөх боломжтой. Хортой апп нь ажиллаж байгаа апп-г нууцаар өөрчлөн, таны хуучин апп-г таны хувийн датаг цуглуулагч болгон хуурах боломжтой."</string>
+    <string name="permlab_writeSettings" msgid="2226195290955224730">"систем тохиргоог өөрчлөх"</string>
+    <string name="permdesc_writeSettings" msgid="7775723441558907181">"Апп нь системийн тохиргооны датаг өөрчлөх боломжтой. Хортой апп нь таны системийн тохиргоог сүйтгэх боломжтой."</string>
+    <string name="permlab_writeSecureSettings" msgid="204676251876718288">"аюулгүй систем тохиргоог өөрчлөх"</string>
+    <string name="permdesc_writeSecureSettings" msgid="8159535613020137391">"Апп нь системийн аюулгүй байдлын тохиргооны датаг өөрчлөх боломжтой. Энгийн апп-д ашиглагдахгүй."</string>
+    <string name="permlab_writeGservices" msgid="2149426664226152185">"Google газрын зургийн үйлчилгээг өөрчлөх"</string>
+    <string name="permdesc_writeGservices" msgid="1287309437638380229">"Апп нь Google-н газрын зургийн үйлчилгээг өөрчлөх боломжтой. Энгийн апп-д ашиглагдахгүй."</string>
+    <string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"Эхлэхэд ажиллуулах"</string>
+    <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7390304664116880704">"Апп нь систем асаж дуусахад шууд өөрийгөө асаах боломжтой. Ингэснээр таблетыг асахад их хугацаа орох болон байнга ажилладаг апп нь таблетийг бүхэлд нь удаашруулах боломжтой."</string>
+    <string name="permdesc_receiveBootCompleted" product="default" msgid="513950589102617504">"Апп нь систем асаж дуусахад шууд өөрийгөө асаах боломжтой. Ингэснээр утсыг асахад их хугацаа орох болон байнга ажилладаг апп нь утсыг бүхэлд нь удаашруулах боломжтой."</string>
+    <string name="permlab_broadcastSticky" msgid="7919126372606881614">"тасардаггүй өргөн дамжууллыг илгээх"</string>
+    <string name="permdesc_broadcastSticky" product="tablet" msgid="7749760494399915651">"Апп нь өргөн дамжуулал дууссаны дараа үлдсэн өргөн дамжуулалыг илгээх боломжтой. Ихээр ашиглах нь хэт их санах ой ашиглан таблетыг удаашруулах болон тогтворгүй болгох боломжтой."</string>
+    <string name="permdesc_broadcastSticky" product="default" msgid="2825803764232445091">"Апп нь өргөн дамжуулал дууссаны дараа үлдсэн өргөн дамжуулалыг илгээх боломжтой. Ихээр ашиглах нь хэт их санах ой ашиглан утсыг удаашруулах болон тогтворгүй болгох боломжтой."</string>
+    <string name="permlab_readContacts" msgid="8348481131899886131">"өөрийн харилцагчдыг унших"</string>
+    <string name="permdesc_readContacts" product="tablet" msgid="5294866856941149639">"Апп нь таны утсаар ярьсан, имэйл илгээсэн давтамж эсвэл тусгай харилцагдчидтайгаа өөр аргаар холбоо барьсан байдал зэргийг агуулсан таблет дээр хадгалагдсан харилцагчдын талаарх датаг унших боломжтой. Энэ зөвшөөрөл нь апп-д таны харилцагчийн датаг хадгалах боломжийг олгох ба хортой апп нь танд мэдэгдэлгүйгээр харилцагчийн датаг хуваалцах боломжтой."</string>
+    <string name="permdesc_readContacts" product="default" msgid="8440654152457300662">"Апп нь таны утсаар ярьсан, имэйл илгээсэн давтамж эсвэл тусгай харилцагчидтайгаа өөр аргаар холбоо барьсан байдал зэргийг агуулсан таны утсан дээр хадгалагдсан харилцагчдын талаарх датаг унших боломжтой. Энэ зөвшөөрөл нь апп-д таны харилцагчийн датаг хадгалах боломжийг олгох ба хортой апп нь танд мэдэгдэлгүйгээр харилцагчийн датаг хуваалцах боломжтой."</string>
+    <string name="permlab_writeContacts" msgid="5107492086416793544">"таны харилцагчдыг өөрчлөх"</string>
+    <string name="permdesc_writeContacts" product="tablet" msgid="897243932521953602">"Апп нь таны утсаар ярьсан, имэйл илгээсэн давтамж эсвэл тусгай харилцагчидтайгаа өөр аргаар холбоо барьсан байдал зэргийг агуулсан таны таблет дээр хадгалагдсан харилцагчдын талаарх датаг өөрчлөх боломжтой. Энэ зөвшөөрөл нь апп-д харилцагчийн датаг устгах боломжийг олгоно."</string>
+    <string name="permdesc_writeContacts" product="default" msgid="589869224625163558">"Апп нь таны утсаар ярьсан, имэйл илгээсэн давтамж эсвэл харилцагдчидтайгаа өөр аргаар холбоо барьсан байдал зэргийг агуулсан утсан дээр хадгалагдсан харилцагчдын талаарх датаг өөрчлөх боломжтой. Энэ зөвшөөрөл нь апп-д харилцагчийн датаг устгах боломжийг олгоно."</string>
+    <string name="permlab_readCallLog" msgid="3478133184624102739">"дуудлагын логийг унших"</string>
+    <string name="permdesc_readCallLog" product="tablet" msgid="3700645184870760285">"Апп нь таны таблетын ирсэн гарсан дуудлага зэргийг агуулсан дуудлагын логыг унших боломжтой. Энэ зөвшөөрөл нь апп-д таны дуудлагын логын датаг хадгалах боломжийг олгох ба хортой апп нь танд мэдэгдэлгүйгээр дуудлагын лог датаг хуваалцах боломжтой."</string>
+    <string name="permdesc_readCallLog" product="default" msgid="5777725796813217244">"Апп нь таны утасны ирсэн гарсан дуудлага зэргийг агуулсан дуудлагын логыг унших боломжтой. Энэ зөвшөөрөл нь апп-д таны дуудлагын логын датаг хадгалах боломжийг олгох ба хортой апп нь танд мэдэгдэлгүйгээр дуудлагын лог датаг хуваалцах боломжтой."</string>
+    <string name="permlab_writeCallLog" msgid="8552045664743499354">"дуудлагын логруу бичих"</string>
+    <string name="permdesc_writeCallLog" product="tablet" msgid="6661806062274119245">"Апп нь таны таблетын ирсэн гарсан дуудлага зэргийг агуулсан дуудлагын логыг унших боломжтой. Хортой апп нь энийг ашиглан таны дуудлагын логыг өөрчлөх болон арилгах боломжтой."</string>
+    <string name="permdesc_writeCallLog" product="default" msgid="683941736352787842">"Апп нь таны утасны ирсэн гарсан дуудлага зэргийг агуулсан дуудлагын логыг өөрчлөх боломжтой. Хортой апп нь энийг ашиглан таны дуудлагын логыг өөрчлөх болон арилгах боломжтой."</string>
+    <string name="permlab_readProfile" msgid="4701889852612716678">"та өөрийн харилцагчийн картыг унших"</string>
+    <string name="permdesc_readProfile" product="default" msgid="5462475151849888848">"Апп нь таны нэр болон холбоо барих мэдээлэл зэрэг таны утсан дээр хадгалагдсан хувийн профайл мэдээллийг унших боломжтой. Ингэснээр апп нь танийг таньж чадах ба таны профайл мэдээллийг бусдад илгээх боломжтой."</string>
+    <string name="permlab_writeProfile" msgid="907793628777397643">"та өөрийн харилцагчийн картыг өөрчлөх"</string>
+    <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"Апп нь таны нэр болон холбоо барих мэдээлэл зэрэг таны төхөөрөмж дээр хадгалагдсан хувийн профайл мэдээллийг солих эсвэл нэмэх боломжтой. Ингэснээр апп нь танийг таньж чадах ба таны профайл мэдээллийг бусдад илгээх боломжтой."</string>
+    <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"таны нийтийн урсгалаас унших"</string>
+    <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"Апп нь та болон таны найзуудын нийтийн шинэчлэлтэд хандах болон синк хийх боломжтой. Мэдээлэл хуваалцахдаа болгоомжтой байна уу - энэ нь апп-д нийтийн сүлжээндэх та болон таны найзууд хоорондын холбоог нууц эсэхээс үл хамааран унших боломжтой. Анхаар: энэ зөвшөөрөл нь бүх нийтийн сүлжээнд ашиглаж боломжгүй."</string>
+    <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"Таны нийтийн урсгалруу бичих"</string>
+    <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"Апп нь таны найзуудын нийтийн шинэчлэлтийг дүрслэх боломжтой.Мэдээлэл хуваалцахдаа болгоомжтой байна уу - энэ нь апп-д таны найзаас ирсэн мэт харагдах мессеж хийх боломжийг олгоно. Анхаар: энэ зөвшөөрөл нь бүх нийтийн сүлжээнд ашиглаж боломжгүй."</string>
+    <string name="permlab_readCalendar" msgid="5972727560257612398">"календарийн хуваарийн нууц мэдээллийг унших"</string>
+    <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"Апп нь таны таблет дээр хадгалагдсан найзууд болон хамтран ажиллагсдын календарийн бүх хуваарийг унших боломжтой. Энэ нь апп-д таны календарийн датаг нууц эсвэл эмзэг эсэхээс нь үл хамааран хуваалцах эсвэл хадгалах боломжийг олгоно."</string>
+    <string name="permdesc_readCalendar" product="default" msgid="7434548682470851583">"Allows the app to read all calendar events stored on your phone, including those of friends or co-workers. This may allow the app to share or save your calendar data, regardless of confidentiality or sensitivity. Апп нь таны утсан дээр хадгалагдсан найзууд болон хамтран ажиллагсдын календарийн бүх хуваарийг унших боломжтой. Энэ нь апп-д таны календарийн датаг нууц эсвэл эмзэг эсэхээс нь үл хамааран хуваалцах эсвэл хадгалах боломжийг олгоно."</string>
+    <string name="permlab_writeCalendar" msgid="8438874755193825647">"календарын хуваарийг нэмэх эсвэл өөрчлөх болон эзэмшигчид мэдэгдэлгүйгээр зочидруу имэйл илгээх"</string>
+    <string name="permdesc_writeCalendar" product="tablet" msgid="6679035520113668528">"Апп нь таблет дээр та болон таны найзууд, хамтран ажиллагсдын өөрчилж чадах үйл явдлуудыг нэмэх, хасах болон солих боломжтой. Энэ нь апп-д, календарь эзэмшигчээс ирсэн мэт харагдах мессежийг илгээх эсвэл эзэмшигчд нь мэдэгдэлгүйгээр үйл явдлуудыг өөрчлөх боломжийг олгоно."</string>
+    <string name="permdesc_writeCalendar" product="default" msgid="2324469496327249376">"Апп нь утсан дээр та болон таны найзууд, хамтран ажиллагсдын өөрчилж чадах үйл явдлуудыг нэмэх, хасах болон солих боломжтой. Энэ нь апп-д, календарь эзэмшигчээс ирсэн мэт харагдах мессежийг илгээх эсвэл эзэмшигчид нь мэдэгдэлгүйгээр үйл явдлуудыг өөрчлөх боломжийг олгоно."</string>
+    <string name="permlab_accessMockLocation" msgid="8688334974036823330">"тест хийх байршлын эх үүсвэрийг үүсгэх"</string>
+    <string name="permdesc_accessMockLocation" msgid="5808711039482051824">"Тестэд ашиглах хуурамч байршлын эх үүсвэрийг үүсгэх болон шинэ байршил өгөгчийг суулгах боломжтой. Ингэснээр апп нь GPS эсвэл байршил өгөгч зэрэг бусад байршлын эх үүсвэрээс ирсэн байршил болон статусыг өөрчлөх боломжтой."</string>
+    <string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"байршил нийлүүлэгчийн нэмэлт тушаалд хандах"</string>
+    <string name="permdesc_accessLocationExtraCommands" msgid="5945166642335800763">"Апп нь байршил нийлүүлэгчийн нэмэлт тушаалд хандах боломжтой. Энэ нь апп-д GPS эсвэл бусад байршлын үйлчилгээний ажиллагаанд нөлөөлөх боломжийг олгоно."</string>
+    <string name="permlab_installLocationProvider" msgid="6578101199825193873">"байршил нийлүүлэгчийг суулгах зөвшөөрөх"</string>
+    <string name="permdesc_installLocationProvider" msgid="9066146120470591509">"Тестэд ашиглах хуурамч байршлын эх үүсвэрийг үүсгэх болон шинэ байршил өгөгчийг суулгах боломжтой. Ингэснээр апп нь GPS эсвэл байршил өгөгч зэрэг бусад байршлын эх үүсвэрээс ирсэн байршил болон статусыг өөрчлөх боломжтой."</string>
+    <string name="permlab_accessFineLocation" msgid="1191898061965273372">"Тодорхой байршил(GPS болон сүлжээнд суурилсан)"</string>
+    <string name="permdesc_accessFineLocation" msgid="5295047563564981250">"Апп нь GPS эсвэл үүрэн цамхаг болон Wi-Fi зэрэг сүлжээний байршлын эх үүсвэрийг ашиглан таны тодорхой байршлыг авах боломжтой. Эдгээр байршлын үйлчилгээнүүд нь асаалттай байх шаардлагатай ба таны төхөөрөмж дээрх апп-ууд ашиглах боломжтой байх шаардлагатай. Апп-ууд энийг ашиглан таныг хаана байгааг тогтоох боломжтой ба батерей зарцуулалт нэмэгдэнэ."</string>
+    <string name="permlab_accessCoarseLocation" msgid="4887895362354239628">"ойролцоох байршил(сүлжээнд суурилсан)"</string>
+    <string name="permdesc_accessCoarseLocation" msgid="2538200184373302295">"Апп нь таны ойролцоох байршлыг оло боломжтой. Энэ байршил нь үүрэн цамхаг болон Wi-Fi зэрэг сүлжээний байршлын эх сурвалжийг ашигладаг байршлын үйлчилгээнээс олдоно. Эдгээр байршлын үйлчилгээнүүд нь таны төхөөрөмж дээр асаалттай байх шаардлагатай ба апп-д тэдгээрийг ашиглах боломжтой байх шаардлагатай. Апп-д тэдгээрийг ашиглан таны байршлыг ойролцоогоор олох боломжтой."</string>
+    <string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"SurfaceFlinger-т хандах"</string>
+    <string name="permdesc_accessSurfaceFlinger" msgid="1041619516733293551">"Апп нь SurfaceFlinger доод-төвшиний функцийг ашиглах боломжтой."</string>
+    <string name="permlab_readFrameBuffer" msgid="6690504248178498136">"Фрэйм буферээс унших"</string>
+    <string name="permdesc_readFrameBuffer" msgid="4937405521809454680">"Апп нь фрэйм буферын контентыг унших боломжтой."</string>
+    <string name="permlab_configureWifiDisplay" msgid="5595661694746742168">"Wifi дэлгэцийг тохируулах"</string>
+    <string name="permdesc_configureWifiDisplay" msgid="7916815158690218065">"Апп нь Wifi дэлгэцийг тохируулах болон холбогдох боломжтой."</string>
+    <string name="permlab_controlWifiDisplay" msgid="393641276723695496">"Wifi дэлгэцийг удирдах"</string>
+    <string name="permdesc_controlWifiDisplay" msgid="4543912292681826986">"Апп нь Wifi дэлгэцний доод-төвшиний функцийг удирдах боломжтой."</string>
+    <string name="permlab_captureAudioOutput" msgid="6857134498402346708">"аудио гаралтыг барих"</string>
+    <string name="permdesc_captureAudioOutput" msgid="6210597754212208853">"Апп-т аудио гаралтыг барих, дахин чиглүүлэхийг зөвшөөрнө."</string>
+    <string name="permlab_captureVideoOutput" msgid="2246828773589094023">"видео гаралтыг барих"</string>
+    <string name="permdesc_captureVideoOutput" msgid="359481658034149860">"Апп-т видео гаралтыг барих, дахин чиглүүлэхийг зөвшөөрнө."</string>
+    <string name="permlab_captureSecureVideoOutput" msgid="7815398969303382016">"найдвартай видео гаралтыг барих"</string>
+    <string name="permdesc_captureSecureVideoOutput" msgid="2779793064709350289">"Апп-т найдвартай видео гаралтыг барих, дахин чиглүүлэхийг зөвшөөрнө."</string>
+    <string name="permlab_modifyAudioSettings" msgid="6095859937069146086">"Аудио тохиргоо солих"</string>
+    <string name="permdesc_modifyAudioSettings" msgid="3522565366806248517">"Апп нь дууны хэмжээ, спикерын гаралтад ашиглагдах глобал аудио тохиргоог өөрчлөх боломжтой."</string>
+    <string name="permlab_recordAudio" msgid="3876049771427466323">"аудио бичих"</string>
+    <string name="permdesc_recordAudio" msgid="4906839301087980680">"Апп нь микрофоноор аудио бичих боломжтой. Энэ зөвшөөрөл нь апп-д ямар ч үед таны зөвшөөрөлгүйгээр аудио бичих боломжийг олгоно."</string>
+    <string name="permlab_camera" msgid="3616391919559751192">"зураг авах болон видео бичих"</string>
+    <string name="permdesc_camera" msgid="8497216524735535009">"Апп нь камераар зураг авах болон видео бичих боломжтой. Энэ зөвшөөрөл нь апп-д ямар ч үед таны зөвшөөрөлгүйгээр камер ашиглах боломжийг олгоно."</string>
+    <string name="permlab_cameraDisableTransmitLed" msgid="2651072630501126222">"камер ашиглаж байх үед дамжууллыг заагч LED-г идэвхгүй болгох"</string>
+    <string name="permdesc_cameraDisableTransmitLed" msgid="4764585465480295341">"Урьдчилан суусан систем аппликешн нь камер ашиглалтыг заасан LED-г идэвхгүй болгох боломжтой."</string>
+    <string name="permlab_brick" product="tablet" msgid="2961292205764488304">"таблетыг бүрмөсөн идэвхгүй болгох"</string>
+    <string name="permlab_brick" product="default" msgid="8337817093326370537">"утсыг бүрмөсөн идэвхгүй болгох"</string>
+    <string name="permdesc_brick" product="tablet" msgid="4334818808001699530">"Апп нь таблетыг бүхэлд нь бүрмөсөн идэвхгүй болгох боломжтой. Энэ маш аюултайэ"</string>
+    <string name="permdesc_brick" product="default" msgid="5788903297627283099">"Апп нь утсыг бүхэлд нь бүрмөсөн идэвхгүй болгох боломжтой. Энэ маш аюултай."</string>
+    <string name="permlab_reboot" product="tablet" msgid="3436634972561795002">"таблет хүчээр дахин асаах"</string>
+    <string name="permlab_reboot" product="default" msgid="2898560872462638242">"утсыг хүчээр дахин асаах"</string>
+    <string name="permdesc_reboot" product="tablet" msgid="8172056180063700741">"Апп нь таблетыг хүчээр дахин асаах боломжтой."</string>
+    <string name="permdesc_reboot" product="default" msgid="5326008124289989969">"Апп нь утсыг хүчээр дахин асаах боломжтой."</string>
+    <string name="permlab_mount_unmount_filesystems" product="nosdcard" msgid="2927361537942591841">"USB сан файл системд хандах"</string>
+    <string name="permlab_mount_unmount_filesystems" product="default" msgid="4402305049890953810">"SD карт файл системд хандах"</string>
+    <string name="permdesc_mount_unmount_filesystems" msgid="1829290701658992347">"Апп нь сугалдаг санг файл системд залгах болон салгах боломжтой."</string>
+    <string name="permlab_mount_format_filesystems" product="nosdcard" msgid="6227819582624904972">"USB санг арилгах"</string>
+    <string name="permlab_mount_format_filesystems" product="default" msgid="262582698639274056">"SD картыг арилгах"</string>
+    <string name="permdesc_mount_format_filesystems" msgid="8784268246779198627">"Апп нь зөөврийн санг форматлах боломжтой."</string>
+    <string name="permlab_asec_access" msgid="3411338632002193846">"дотоод сангийн мэдээллийг авах"</string>
+    <string name="permdesc_asec_access" msgid="3094563844593878548">"Апп нь дотоод сангаас мэдээллийг авах боломжтой"</string>
+    <string name="permlab_asec_create" msgid="6414757234789336327">"дотоод санд үүсгэх"</string>
+    <string name="permdesc_asec_create" msgid="4558869273585856876">"Апп нь дотоод сан үүсгэх боломжтой."</string>
+    <string name="permlab_asec_destroy" msgid="526928328301618022">"дотоод сангаас устгах"</string>
+    <string name="permdesc_asec_destroy" msgid="7218749286145526537">"Апп нь дотоод сангаас устгах боломжтой."</string>
+    <string name="permlab_asec_mount_unmount" msgid="8877998101944999386">"дотоод санг залгах/салгах"</string>
+    <string name="permdesc_asec_mount_unmount" msgid="3451360114902490929">"Апп нь дотоод санг залгах/салгах боломжтой."</string>
+    <string name="permlab_asec_rename" msgid="7496633954080472417">"дотоод сангийн нэрийг өөрчлөх"</string>
+    <string name="permdesc_asec_rename" msgid="1794757588472127675">"Апп нь дотоод сангийн нэрийг өөрчлөх боломжтой."</string>
+    <string name="permlab_vibrate" msgid="7696427026057705834">"чичиргээг удирдах"</string>
+    <string name="permdesc_vibrate" msgid="6284989245902300945">"Апп нь чичиргээг удирдах боломжтой."</string>
+    <string name="permlab_flashlight" msgid="2155920810121984215">"гар чийдэн удирдах"</string>
+    <string name="permdesc_flashlight" msgid="6522284794568368310">"Апп нь гар чийдэнг удирдах боломжтой."</string>
+    <string name="permlab_manageUsb" msgid="1113453430645402723">"USB төхөөрөмжийн тохиргоо болон зөвшөөрлийг удирдах"</string>
+    <string name="permdesc_manageUsb" msgid="7776155430218239833">"Апп нь USB төхөөрөмжийн зөвшөөрөл болон тохируулгыг удирдах боломжтой."</string>
+    <string name="permlab_accessMtp" msgid="4953468676795917042">"MTP протоколыг гүйцэтгэх"</string>
+    <string name="permdesc_accessMtp" msgid="6532961200486791570">"MTP USB протокол биелүүлэхээр MTP цөм драйверт хандах боломжтой."</string>
+    <string name="permlab_hardware_test" msgid="4148290860400659146">"хардвер теслэх"</string>
+    <string name="permdesc_hardware_test" msgid="6597964191208016605">"Апп нь хардверийг тестлэх зорилгоор олон төрлийн туслах төхөөрөмжийг удирдах боломжтой."</string>
+    <string name="permlab_callPhone" msgid="3925836347681847954">"утасны дугаарт шууд дуудлага хийх"</string>
+    <string name="permdesc_callPhone" msgid="3740797576113760827">"Апп нь таны оролцоогүйгээр дуудлага хийх боломжтой. Энэ нь төлөвлөгдөөгүй төлбөрт оруулах эсвэл дуудлага хийнэ. Энэ нь апп-г яаралтай дугаарт дуудлага хийхйг зөвшөөрөхгүй. Хортой апп нь таны зөвшөөрөлгүйгээр дуудлага хийж таныг төлбөрт оруулж болзошгүй"</string>
+    <string name="permlab_callPrivileged" msgid="4198349211108497879">"дурны утасны дугаарт шууд дуудлага хийх"</string>
+    <string name="permdesc_callPrivileged" msgid="1689024901509996810">"Апп нь таны оролцоогүйгээр яаралтай тусламжийн дугааруудыг оруулаад ямарч дугаарлуу дуудлага хийх боломжтой. Хортой апп нь шаардлагагүй, хууль бус дуудлагыг яаралтай тусламжийн үйлчилгээрүү хийж болзошгүй."</string>
+    <string name="permlab_performCdmaProvisioning" product="tablet" msgid="4842576994144604821">"CDMA таблет тохиргоог шууд эхлүүлэх"</string>
+    <string name="permlab_performCdmaProvisioning" product="default" msgid="5604848095315421425">"CDMA утасны тохиргоог шууд эхлүүлэх"</string>
+    <string name="permdesc_performCdmaProvisioning" msgid="1994193538802314186">"Апп нь CDMA провишныг эхлүүлэх боломжтой. Хортой апп нь шаардлагагүй байхад CDMA провишныг эхлүүлж болзошгүй."</string>
+    <string name="permlab_locationUpdates" msgid="7785408253364335740">"байршил шинэчлэх мэдэгдлийг удирдах"</string>
+    <string name="permdesc_locationUpdates" msgid="1120741557891438876">"Апп нь радиогоос ирсэн байршил шинэчлэх мэдэгдлийг идэвхтэй/идэвхгүй болгох боломжтой. Энгийн апп-д хэрэглэглэхгүй."</string>
+    <string name="permlab_checkinProperties" msgid="7855259461268734914">"бүртгэх пропертид хандах"</string>
+    <string name="permdesc_checkinProperties" msgid="4024526968630194128">"Апп нь бүртгэл үйлчилгээгээр байршуулагдсан пропертиг унших/бичих боломжтой. Энгийн апп-д хэрэглэгдэхгүй."</string>
+    <string name="permlab_bindGadget" msgid="776905339015863471">"виджет сонгох"</string>
+    <string name="permdesc_bindGadget" msgid="8261326938599049290">"Апп нь аль апп ямар виджетийг ашиглаж байгаа тухай системд мэдэгдэх боломжтой. Энэ зөвшөөрөлтэй апп нь бусад апп-д хувийн датад хандах эрхийг өгөх боломжтой. Энгийн апп-д ашиглагдахгүй."</string>
+    <string name="permlab_modifyPhoneState" msgid="8423923777659292228">"утасны статусыг өөрчлөх"</string>
+    <string name="permdesc_modifyPhoneState" msgid="1029877529007686732">"Апп-н төхөөрөмжийн утасны функцийг удирдах боломжтой. Энэ зөвшөөрөлтэй апп  нь танд анхааруулахгүйгээр сүлжээг сэлгэх, утасны радиог асаах, унтраах боломжтой."</string>
+    <string name="permlab_readPhoneState" msgid="9178228524507610486">"утасны статус ба таниулбарыг унших"</string>
+    <string name="permdesc_readPhoneState" msgid="1639212771826125528">"Апп нь төхөөрөмжийн утасны функцд хандах боломжтой. Энэ зөвшөөрөл нь апп-д утасны дугаар болон төхөөрөмжийн ID-г, дуудлага идэвхтэй эсэх, холын дугаар дуудлагаар холбогдсон байгаа эсэхийг тогтоох боломжийг олгоно,"</string>
+    <string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"таблетыг унтуулахгүй байлгах"</string>
+    <string name="permlab_wakeLock" product="default" msgid="573480187941496130">"утсыг унтуулахгүй байлгах"</string>
+    <string name="permdesc_wakeLock" product="tablet" msgid="7311319824400447868">"Апп нь таблетыг унтахаас сэргийлэх боломжтой"</string>
+    <string name="permdesc_wakeLock" product="default" msgid="8559100677372928754">"Апп нь утсыг унтахаас сэргийлэх боломжтой"</string>
+    <string name="permlab_devicePower" product="tablet" msgid="2787034722616350417">"таблетыг унтраах эсвэл асаах"</string>
+    <string name="permlab_devicePower" product="default" msgid="4928622470980943206">"утсыг унтраах эсвэл асаах"</string>
+    <string name="permdesc_devicePower" product="tablet" msgid="6689862878984631831">"Апп нь таблетыг асаах, унтраах боломжтой."</string>
+    <string name="permdesc_devicePower" product="default" msgid="6037057348463131032">"Апп нь утсыг асаах, унтраах боломжтой."</string>
+    <string name="permlab_factoryTest" msgid="3715225492696416187">"үйлдвэрийн тест горимд ажиллуулах"</string>
+    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"Доод төвшиний үйлдвэрийн тестийг ажиллуулан таблетын хардверт бүрэн хандах боломжтой. Таблет нь үйлдвэрийн тестийн горимд ажиллах үед л боломжтой."</string>
+    <string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"Доод төвшиний үйлдвэрийн тестийг ажиллуулан утасны хардверт бүрэн хандах боломжтой. Утас үйлдвэрийн тестийн горимд ажиллах үед л боломжтой."</string>
+    <string name="permlab_setWallpaper" msgid="6627192333373465143">"ханын зургийг тохируулах"</string>
+    <string name="permdesc_setWallpaper" msgid="7373447920977624745">"Апп нь системийн ханын зургийг тохируулах боломжтой."</string>
+    <string name="permlab_setWallpaperHints" msgid="3278608165977736538">"Таны ханын зурагны хэмжээг тохируулах"</string>
+    <string name="permdesc_setWallpaperHints" msgid="8235784384223730091">"Апп нь системийн ханын зургийн хэмжээний саналыг тохируулах боломжтой"</string>
+    <string name="permlab_masterClear" msgid="2315750423139697397">"системийг үйлдвэрийн үндсэн утгаар тохируулах"</string>
+    <string name="permdesc_masterClear" msgid="3665380492633910226">"Апп нь бүх датаг арилгах болон бүх суулгасан апп-г арилган системийг бүхэлд үйлдвэрийн тохиргоогоор бүрэн тохируулах боломжтой"</string>
+    <string name="permlab_setTime" msgid="2021614829591775646">"цагийн тохиргоо"</string>
+    <string name="permdesc_setTime" product="tablet" msgid="1896341438151152881">"Апп нь таблетын цагийг солих боломжтой."</string>
+    <string name="permdesc_setTime" product="default" msgid="1855702730738020">"Апп нь утасны цагийг солих боломжтой."</string>
+    <string name="permlab_setTimeZone" msgid="2945079801013077340">"цагийн бүсийн тохиргоо"</string>
+    <string name="permdesc_setTimeZone" product="tablet" msgid="1676983712315827645">"Апп нь таблетын цагийн бүсийг солих боломжтой."</string>
+    <string name="permdesc_setTimeZone" product="default" msgid="4499943488436633398">"Апп нь утасны цагийн бүсийг өөрчлөх боломжтой."</string>
+    <string name="permlab_accountManagerService" msgid="4829262349691386986">"AccountManagerService болж ажиллах"</string>
+    <string name="permdesc_accountManagerService" msgid="1948455552333615954">"Апп нь Акаунт гэрчлэгчрүү дуудлага хийх боломжтой."</string>
+    <string name="permlab_getAccounts" msgid="1086795467760122114">"төхөөрөмж дээрх акаунтыг олох"</string>
+    <string name="permdesc_getAccounts" product="tablet" msgid="2741496534769660027">"Апп нь таблетэд мэдэгдэж байгаа акаунтын жагсаалтыг авах боломжтой. Энд таны суулгасан аппликешнүүдийн үүсгэсэн бүх акаунтууд хамрагдана."</string>
+    <string name="permdesc_getAccounts" product="default" msgid="3448316822451807382">"Апп нь утсанд мэдэгдэж байгаа акаунтын жагсаалтыг авах боломжтой. Энд таны суулгасан аппликешнүүдийн үүсгэсэн бүх акаунтууд хамрагдана."</string>
+    <string name="permlab_authenticateAccounts" msgid="5265908481172736933">"акаунт үүсгэх болон нууц үг тохируулах"</string>
+    <string name="permdesc_authenticateAccounts" msgid="5472124296908977260">"Апп нь акаунт үүсгэх, тэдгээрийн нууц үгийг тохируулах зэрэг акаунт удирдагчийн акаунт гэрчлэгчийн функцийг ашиглах боломжтой."</string>
+    <string name="permlab_manageAccounts" msgid="4983126304757177305">"акаунт нэмэх эсвэл хасах"</string>
+    <string name="permdesc_manageAccounts" msgid="8698295625488292506">"Апп нь акаунт нэмэх, устгах ба тэдний нууц үгийг устгах зэрэг үйлдлийг гүйцэтгэх боломжтой."</string>
+    <string name="permlab_useCredentials" msgid="235481396163877642">"төхөөрөмж дээрх акаунтыг ашиглах"</string>
+    <string name="permdesc_useCredentials" msgid="7984227147403346422">"Апп нь гэрчлэлийн бүтвэрийг хүсэх боломжтой."</string>
+    <string name="permlab_accessNetworkState" msgid="4951027964348974773">"сүлжээний холболтыг үзэх"</string>
+    <string name="permdesc_accessNetworkState" msgid="8318964424675960975">"Апп нь сүлжээ байгаа болон холбогдсон эсэх зэрэг сүлжээний холболтын талаарх мэдээллийг харах боломжтой."</string>
+    <string name="permlab_createNetworkSockets" msgid="8018758136404323658">"сүлжээнд бүрэн хандах"</string>
+    <string name="permdesc_createNetworkSockets" msgid="3403062187779724185">"Апп нь сүлжээний сокетыг үүсгэх болон тусгай сүлжээний протокол ашиглах боломжтой. Хөтөч болон бусад аппликешнүүд Интернетээр дата илгээх боломжтой  тул энэ зөвшөөрөл нь Интернетээр дата илгээхэд шаардлагагүй."</string>
+    <string name="permlab_writeApnSettings" msgid="505660159675751896">"сүлжээний тохиргоо болон урсгалыг солих/таслах"</string>
+    <string name="permdesc_writeApnSettings" msgid="5333798886412714193">"Апп нь сүлжээний тохиргоог солих болон сүлжээний бүх урсгалыг APN-н прокси болон портыг солих замаар таслах, хянах боломжтой. Хортой апп нь танд мэдэгдэлгүйгээр сүлжээний пакетыг хянах, дахин чиглүүлэх болон өөрчлөх боломжтой."</string>
+    <string name="permlab_changeNetworkState" msgid="958884291454327309">"сүлжээний холболтыг солих"</string>
+    <string name="permdesc_changeNetworkState" msgid="6789123912476416214">"Апп нь сүлжээний холболтын статусыг солих боломжтой."</string>
+    <string name="permlab_changeTetherState" msgid="5952584964373017960">"модем болгосон холболтыг солих"</string>
+    <string name="permdesc_changeTetherState" msgid="1524441344412319780">"Апп нь холбогдсон сүлжээний холболтын статусыг солих боломжтой."</string>
+    <string name="permlab_changeBackgroundDataSetting" msgid="1400666012671648741">"арын дата ашиглалтын тохиргоог солих"</string>
+    <string name="permdesc_changeBackgroundDataSetting" msgid="5347729578468744379">"Апп нь арын дата хэрэглээний тохиргоог солих боломжтой."</string>
+    <string name="permlab_accessWifiState" msgid="5202012949247040011">"Wi-Fi холболтыг үзэх"</string>
+    <string name="permdesc_accessWifiState" msgid="5002798077387803726">"Апп нь Wi-Fi идэвхтэй эсэх болон холбогдсон Wi-Fi төхөөрөмжийн нэр зэрэг Wi-Fi сүлжээний талаарх мэдээллийг харах боломжтой."</string>
+    <string name="permlab_changeWifiState" msgid="6550641188749128035">"Wi-Fi -тай холбогдох болон салах"</string>
+    <string name="permdesc_changeWifiState" msgid="7137950297386127533">"Апп нь Wi-Fi холболтын цэгтэй холбогдох буюу салах боломжтой ба тохируулсан Wi-Fi сүлжээнд өөрчлөлт хийх боломжтой."</string>
+    <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"Wi-Fi олон дамжуулалт хүлээн авахыг зөвшөөрөх"</string>
+    <string name="permdesc_changeWifiMulticastState" product="tablet" msgid="7969774021256336548">"Апп нь олон дамжуулал ашиглан Wi-Fi сүлжээн дэх бүх төхөөрөмжрүү пакет илгээх болон хүлээн авах боломжтой. Энэ нь олон дамжуулал ашиглахгүй горимоос илүү их тэжээл зарцуулна."</string>
+    <string name="permdesc_changeWifiMulticastState" product="default" msgid="6851949706025349926">"Апп нь олон дамжуулал ашиглан Wi-Fi сүлжээн дэх бүх төхөөрөмжрүү пакет илгээх болон хүлээн авах боломжтой. Энэ нь олон дамжуулал ашиглахгүй горимоос илүү их тэжээл зарцуулна."</string>
+    <string name="permlab_bluetoothAdmin" msgid="6006967373935926659">"Блютүүт тохиргоонд хандах"</string>
+    <string name="permdesc_bluetoothAdmin" product="tablet" msgid="6921177471748882137">"Апп нь дотоод блютүүт таблетын тохиргоог харах боломжтой ба хос болох төхөөрөмжтэй холболтыг зөвшөөрөх болон хийх боломжтой"</string>
+    <string name="permdesc_bluetoothAdmin" product="default" msgid="8931682159331542137">"Апп нь утасны дотоод блютүүтыг тохируулах боломжтой ба гадаад төхөөрөмжийг олох болон хос үүсгэх боломжтой."</string>
+    <string name="permlab_accessWimaxState" msgid="4195907010610205703">"WiMAX-д холбогдох болон салах"</string>
+    <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"Апп нь WiMAX идэвхтэй эсэх болон холбогдсон WiMAX сүлжээний талаар мэдээллийг тодорхойлох боломжтой."</string>
+    <string name="permlab_changeWimaxState" msgid="2405042267131496579">"WiMAX статусыг өөрчлөх"</string>
+    <string name="permdesc_changeWimaxState" product="tablet" msgid="3156456504084201805">"Апп нь WiMAX сүлжээнд таблетыг холбох болон салгах боломжтой."</string>
+    <string name="permdesc_changeWimaxState" product="default" msgid="697025043004923798">"Апп нь WiMAX сүлжээнд утсыг холбох болон салгах боломжтой."</string>
+    <string name="permlab_bluetooth" msgid="6127769336339276828">"Блютүүт төхөөрөмжтэй хос үүсгэх"</string>
+    <string name="permdesc_bluetooth" product="tablet" msgid="3480722181852438628">"Апп нь таблет дээрх блютүүт тохиргоог харах боломжтой ба хос болох төхөөрөмжтэй холболтыг зөвшөөрөх болон хийх боломжтой."</string>
+    <string name="permdesc_bluetooth" product="default" msgid="3207106324452312739">"Апп нь утсан дээрх Блютүүт тохиргоог харах боломжтой ба хос болох төхөөрөмжтэй холболтыг зөвшөөрөх болон хийх боломжтой."</string>
+    <string name="permlab_nfc" msgid="4423351274757876953">"ойролцоо талбарын холбоог удирдах"</string>
+    <string name="permdesc_nfc" msgid="7120611819401789907">"Апп нь Ойролцоо Талбарын Холболт(NFC) таг, карт, болон уншигчтай холбогдох боломжтой."</string>
+    <string name="permlab_disableKeyguard" msgid="3598496301486439258">"дэлгэцний түгжээг идэвхгүй болгох"</string>
+    <string name="permdesc_disableKeyguard" msgid="6034203065077122992">"Апп нь түгжээ болон бусад холбоотой нууц үгийн аюулгүй байдлыг идэвхгүй болгох боломжтой. Жишээ нь бол утас нь дуудлага ирэх үед түгжээг идэвхгүй болгох ба дуудлага дуусахад буцаан идэвхтэй болгодог."</string>
+    <string name="permlab_readSyncSettings" msgid="6201810008230503052">"синк тохиргоог унших"</string>
+    <string name="permdesc_readSyncSettings" msgid="2706745674569678644">"Апп нь акаунтын синк тохиргоог унших боломжтой. Жишээ нь энэ нь Хүмүүс апп акаунттай синк хийгдсэн эсэхийг тодорхойлох боломжтой."</string>
+    <string name="permlab_writeSyncSettings" msgid="5408694875793945314">"синкийг унтрааж асаах тохиргоо"</string>
+    <string name="permdesc_writeSyncSettings" msgid="8956262591306369868">"Апп нь акаунтын синк тохиргоог өөрчлөх боломжтой. Жишээ нь энэ нь Хүмүүс апп акаунттай синк хийхийг идэвхжүүлэх боломжтой."</string>
+    <string name="permlab_readSyncStats" msgid="7396577451360202448">"синк статистикийг унших"</string>
+    <string name="permdesc_readSyncStats" msgid="1510143761757606156">"Апп нь синк үйлдэлийн түүх болон хэр их дата синк хийгдсэн зэрэг акаунтын синк статусыг унших боломжтой."</string>
+    <string name="permlab_subscribedFeedsRead" msgid="4756609637053353318">"бүртгүүлсэн хангамжийг унших"</string>
+    <string name="permdesc_subscribedFeedsRead" msgid="5557058907906144505">"Апп нь одоогийн синк хийгдсэн хангамжийн талаарх мэдээллийг авах боломжтой."</string>
+    <string name="permlab_subscribedFeedsWrite" msgid="9015246325408209296">"бүртгүүлсэн хангамжруу бичих"</string>
+    <string name="permdesc_subscribedFeedsWrite" msgid="6928930188826089413">"Апп нь таны одоогийн синк хийгдсэн хангамжийг өөрчлөх боломжтой. Хортой апп нь таны синк хийгдсэн хангамжийг өөрчлөх боломжтой."</string>
+    <string name="permlab_readDictionary" msgid="4107101525746035718">"таны толь бичигт нэмсэн нөхцөлийг унших"</string>
+    <string name="permdesc_readDictionary" msgid="659614600338904243">"Апп нь хэрэглэгч хэрэглэгчийн толь бичигт хадгалсан бүх үгс, нэрс болон хэлцийг унших боломжтой."</string>
+    <string name="permlab_writeDictionary" msgid="2183110402314441106">"хэрэглэгчийн толь бичигт үгс нэмэх"</string>
+    <string name="permdesc_writeDictionary" msgid="8185385716255065291">"Апп нь хэрэглэгчийн толь бичигт шинэ үг бичих боломжтой."</string>
+    <string name="permlab_sdcardRead" product="nosdcard" msgid="8235341515605559677">"хамгаалагдсан санд хандах тест хийх"</string>
+    <string name="permlab_sdcardRead" product="default" msgid="8235341515605559677">"хамгаалагдсан санд хандах тест хийх"</string>
+    <string name="permdesc_sdcardRead" product="nosdcard" msgid="3642473292348132072">"Апп нь дараагийн төхөөрөмжүүдэд ашиглах боломжтой болох SD карт зөвшөөрлийг тестлэх боломжтой."</string>
+    <string name="permdesc_sdcardRead" product="default" msgid="5914402684685848828">"Апп нь дараагийн төхөөрөмжүүдэд ашиглах боломжтой болох SD карт эрхийг тестлэх боломжтой."</string>
+    <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"USB сангийн контентыг өөрчлөх эсвэл устгах"</string>
+    <string name="permlab_sdcardWrite" product="default" msgid="8805693630050458763">"SD картны контентыг өөрчлөх болон устгах"</string>
+    <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"Апп нь USB санруу бичих боломжтой."</string>
+    <string name="permdesc_sdcardWrite" product="default" msgid="4337417790936632090">"Апп нь SD картруу бичих боломжтой."</string>
+    <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"дотоод медиа сангийн контентыг өөрчлөх/устгах"</string>
+    <string name="permdesc_mediaStorageWrite" product="default" msgid="8189160597698529185">"Апп нь дотоод медиа сангийн контентыг өөрчлөх боломжтой."</string>
+    <string name="permlab_manageDocs" product="default" msgid="5778318598448849829">"документ санг удирдах"</string>
+    <string name="permdesc_manageDocs" product="default" msgid="8704323176914121484">"Апп нь документ санг удирдах боломжтой."</string>
+    <string name="permlab_sdcardAccessAll" msgid="8150613823900460576">"бүх хэрэглэгчдийн гадаар санд хандах"</string>
+    <string name="permdesc_sdcardAccessAll" msgid="3215208357415891320">"Апп нь бүх хэрэглэгчдийн гадаад санд хандах боломжтой."</string>
+    <string name="permlab_cache_filesystem" msgid="5656487264819669824">"кеш файлсистемд хандах"</string>
+    <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"Апп нь кеш файлсистемийг унших бичих боломжтой."</string>
+    <string name="permlab_use_sip" msgid="5986952362795870502">"Интернет дуудлага хийх/хүлээн авах"</string>
+    <string name="permdesc_use_sip" msgid="4717632000062674294">"Апп нь Интернет дуудлага хийх/хүлээн авахын тулд SIP үйлчилгээг ашиглах боломжтой."</string>
+    <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"сүлжээний ашиглалтын түүхийг унших"</string>
+    <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"Апп нь тусгай сүлжээ болон апп-н сүлжээ ашиглалтын түүхийг унших боломжтой."</string>
+    <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"сүлжээний бодлогыг удирдах"</string>
+    <string name="permdesc_manageNetworkPolicy" msgid="7537586771559370668">"Апп нь сүлжээний бодлогыг удирдах болон апп-д зориулсан дүрмийг тогтоох боломжтой."</string>
+    <string name="permlab_modifyNetworkAccounting" msgid="5088217309088729650">"сүлжээний хэрэглээний тайланг өөрчлөх"</string>
+    <string name="permdesc_modifyNetworkAccounting" msgid="5443412866746198123">"Апп нь апп-уудын сүлжээ ашиглалтын талаарх тооцоог өөрчлөх боломжтой. Энгийн апп-д ашиглагдахгүй."</string>
+    <string name="permlab_markNetworkSocket" msgid="3658527214914959749">"соккетын тэмдгүүдийг өөрчлөх"</string>
+    <string name="permdesc_markNetworkSocket" msgid="7655568433696356578">"Апп-д чиглэлийн соккетын тэмдгийг өөрчлөх боломж олгоно"</string>
+    <string name="permlab_accessNotifications" msgid="7673416487873432268">"мэдэгдэлд хандах"</string>
+    <string name="permdesc_accessNotifications" msgid="458457742683431387">"Апп нь бусад апп-уудын илгээсэн мэдэгдлүүдийг дуудах, шалгах, болон цэвэрлэх боломжтой."</string>
+    <string name="permlab_bindNotificationListenerService" msgid="7057764742211656654">"мэдэгдэл сонсогч үйлчилгээтэй холбох"</string>
+    <string name="permdesc_bindNotificationListenerService" msgid="985697918576902986">"Эзэмшигч нь мэдэгдэл сонсох үйлчилгээний дээд-төвшиний интерфейстэй холбох боломжтой. Энгийн апп-д шаардлагагүй."</string>
+    <string name="permlab_invokeCarrierSetup" msgid="3699600833975117478">"үүрэн компанийн нийлүүлсэн тохируулгын апп-г өдөөх"</string>
+    <string name="permdesc_invokeCarrierSetup" msgid="4159549152529111920">"Эзэмшигчид үүрэн компанийн нийлүүлсэн тохируулах апп-г өдөөх боломж олгоно. Энгийн апп-уудад хэзээ ч ашиглагдахгүй."</string>
+    <string name="permlab_accessNetworkConditions" msgid="8206077447838909516">"Сүлжээний байдлын талаар ажиглалтуудыг хүлээн авах"</string>
+    <string name="permdesc_accessNetworkConditions" msgid="6899102075825272211">"Аппликешнд сүлжээний байдлын талаар ажиглалтуудыг хүлээн авахыг зөвшөөрнө. Энгийн апп-уудад хэзээ ч ашиглагдахгүй."</string>
+    <string name="policylab_limitPassword" msgid="4497420728857585791">"Нууц үгний дүрмийг тохируулах"</string>
+    <string name="policydesc_limitPassword" msgid="3252114203919510394">"Дэлгэц түгжих нууц үгэнд зөвшөөрөгдсөн тэмдэгт болон уртыг удирдах"</string>
+    <string name="policylab_watchLogin" msgid="914130646942199503">"Дэлгэц тайлах оролдлогыг хянах"</string>
+    <string name="policydesc_watchLogin" product="tablet" msgid="3215729294215070072">"Дэлгэц түгжигдсэн үед нууц үг буруу оруулалтын тоог хянах ба хэрэв хэт олон удаа нууц үгийг буруу оруулбал таблетыг түгжих болон таблетын бүх датаг арилгана"</string>
+    <string name="policydesc_watchLogin" product="default" msgid="5712323091846761073">"Дэлгэц түгжигдсэн үед нууц үг буруу оруулалтын тоог хянах, ба хэрэв хэт олон удаа нууц үгийг буруу оруулбал утсыг түгжих болон утасны бүх датаг арилгана"</string>
+    <string name="policylab_resetPassword" msgid="2620077191242688955">"Дэлгэц түгжих нууц үгийг солих"</string>
+    <string name="policydesc_resetPassword" msgid="605963962301904458">"Дэлгэц түгжих нууц үгийг солих"</string>
+    <string name="policylab_forceLock" msgid="2274085384704248431">"Дэлгэц түгжих"</string>
+    <string name="policydesc_forceLock" msgid="1141797588403827138">"Дэлгэц хэзээ яаж түгжихийг удирдах"</string>
+    <string name="policylab_wipeData" msgid="3910545446758639713">"Бүх датаг арилгах"</string>
+    <string name="policydesc_wipeData" product="tablet" msgid="4306184096067756876">"Үйлдвэрийн дата утгыг өгсөнөөр таблетын дата шууд арилгагдана."</string>
+    <string name="policydesc_wipeData" product="default" msgid="5096895604574188391">"Үйлдвэрийн дата утгыг өгсөнөөр утасны дата шууд арилгагдана."</string>
+    <string name="policylab_setGlobalProxy" msgid="2784828293747791446">"Төхөрөөмжийн глобал проксиг тохируулах"</string>
+    <string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"Бодлого идэвхтэй үед төхөөрөмжийн глобал проксиг ашиглахаар тохируулсан. Зөвхөн эхний төхөөрөмжийн админ л үр дүнтэй глобал проксиг тохируулна."</string>
+    <string name="policylab_expirePassword" msgid="885279151847254056">"Дэлгэц түгжих нууц үгний хүчинтэй хугацааг тохируулах"</string>
+    <string name="policydesc_expirePassword" msgid="1729725226314691591">"Дэлгэцний түгжих нууц үг хэр давтамжтай солигдохыг удирдах."</string>
+    <string name="policylab_encryptedStorage" msgid="8901326199909132915">"Сангийн шифрлэхийг тохируулах"</string>
+    <string name="policydesc_encryptedStorage" msgid="2637732115325316992">"Хадгалагдсан апп дата шифрлэгдэх шаардлагатай"</string>
+    <string name="policylab_disableCamera" msgid="6395301023152297826">"Камер идэвхгүй болгох"</string>
+    <string name="policydesc_disableCamera" msgid="2306349042834754597">"Төхөөрөмжийн бүх камерийг ашиглахгүй."</string>
+    <string name="policylab_disableKeyguardFeatures" msgid="266329104542638802">"Түлхүүр хамгаалтын функцийг унтраах"</string>
+    <string name="policydesc_disableKeyguardFeatures" msgid="3467082272186534614">"Түлхүүр хамгаалалтын зарим функцийг ашиглахыг хориглох."</string>
+  <string-array name="phoneTypes">
+    <item msgid="8901098336658710359">"Гэрийн"</item>
+    <item msgid="869923650527136615">"Мобайл"</item>
+    <item msgid="7897544654242874543">"Ажлын"</item>
+    <item msgid="1103601433382158155">"Ажлын факс"</item>
+    <item msgid="1735177144948329370">"Гэрийн Факс"</item>
+    <item msgid="603878674477207394">"Пэйжер"</item>
+    <item msgid="1650824275177931637">"Бусад"</item>
+    <item msgid="9192514806975898961">"Тусгай"</item>
+  </string-array>
+  <string-array name="emailAddressTypes">
+    <item msgid="8073994352956129127">"Гэрийн"</item>
+    <item msgid="7084237356602625604">"Ажлын"</item>
+    <item msgid="1112044410659011023">"Бусад"</item>
+    <item msgid="2374913952870110618">"Тусгай"</item>
+  </string-array>
+  <string-array name="postalAddressTypes">
+    <item msgid="6880257626740047286">"Гэрийн"</item>
+    <item msgid="5629153956045109251">"Ажлын"</item>
+    <item msgid="4966604264500343469">"Бусад"</item>
+    <item msgid="4932682847595299369">"Тусгай"</item>
+  </string-array>
+  <string-array name="imAddressTypes">
+    <item msgid="1738585194601476694">"Гэрийн"</item>
+    <item msgid="1359644565647383708">"Ажлын"</item>
+    <item msgid="7868549401053615677">"Бусад"</item>
+    <item msgid="3145118944639869809">"Тусгай"</item>
+  </string-array>
+  <string-array name="organizationTypes">
+    <item msgid="7546335612189115615">"Ажлын"</item>
+    <item msgid="4378074129049520373">"Бусад"</item>
+    <item msgid="3455047468583965104">"Тусгай"</item>
+  </string-array>
+  <string-array name="imProtocols">
+    <item msgid="8595261363518459565">"AIM"</item>
+    <item msgid="7390473628275490700">"Windows Live"</item>
+    <item msgid="7882877134931458217">"Yahoo"</item>
+    <item msgid="5035376313200585242">"Skype"</item>
+    <item msgid="7532363178459444943">"QQ"</item>
+    <item msgid="3713441034299660749">"Google Talk"</item>
+    <item msgid="2506857312718630823">"ICQ"</item>
+    <item msgid="1648797903785279353">"Jabber"</item>
+  </string-array>
+    <string name="phoneTypeCustom" msgid="1644738059053355820">"Тусгай"</string>
+    <string name="phoneTypeHome" msgid="2570923463033985887">"Гэрийн"</string>
+    <string name="phoneTypeMobile" msgid="6501463557754751037">"Мобайл"</string>
+    <string name="phoneTypeWork" msgid="8863939667059911633">"Ажлын"</string>
+    <string name="phoneTypeFaxWork" msgid="3517792160008890912">"Ажлын факс"</string>
+    <string name="phoneTypeFaxHome" msgid="2067265972322971467">"Гэрийн Факс"</string>
+    <string name="phoneTypePager" msgid="7582359955394921732">"Пэйжер"</string>
+    <string name="phoneTypeOther" msgid="1544425847868765990">"Бусад"</string>
+    <string name="phoneTypeCallback" msgid="2712175203065678206">"Буцаж холбоо барих"</string>
+    <string name="phoneTypeCar" msgid="8738360689616716982">"Машин"</string>
+    <string name="phoneTypeCompanyMain" msgid="540434356461478916">"Байгууллагын үндсэн"</string>
+    <string name="phoneTypeIsdn" msgid="8022453193171370337">"ISDN"</string>
+    <string name="phoneTypeMain" msgid="6766137010628326916">"Үндсэн"</string>
+    <string name="phoneTypeOtherFax" msgid="8587657145072446565">"Бусад факс"</string>
+    <string name="phoneTypeRadio" msgid="4093738079908667513">"Радио"</string>
+    <string name="phoneTypeTelex" msgid="3367879952476250512">"Tелекс"</string>
+    <string name="phoneTypeTtyTdd" msgid="8606514378585000044">"TTY TDD"</string>
+    <string name="phoneTypeWorkMobile" msgid="1311426989184065709">"Ажлын утас"</string>
+    <string name="phoneTypeWorkPager" msgid="649938731231157056">"Ажлын пейжер"</string>
+    <string name="phoneTypeAssistant" msgid="5596772636128562884">"Туслагч"</string>
+    <string name="phoneTypeMms" msgid="7254492275502768992">"MMS"</string>
+    <string name="eventTypeCustom" msgid="7837586198458073404">"Тусгай"</string>
+    <string name="eventTypeBirthday" msgid="2813379844211390740">"Төрсөн огноо"</string>
+    <string name="eventTypeAnniversary" msgid="3876779744518284000">"Түүхэн ой"</string>
+    <string name="eventTypeOther" msgid="7388178939010143077">"Бусад"</string>
+    <string name="emailTypeCustom" msgid="8525960257804213846">"Тусгай"</string>
+    <string name="emailTypeHome" msgid="449227236140433919">"Гэрийн"</string>
+    <string name="emailTypeWork" msgid="3548058059601149973">"Ажлын"</string>
+    <string name="emailTypeOther" msgid="2923008695272639549">"Бусад"</string>
+    <string name="emailTypeMobile" msgid="119919005321166205">"Мобайл"</string>
+    <string name="postalTypeCustom" msgid="8903206903060479902">"Тусгай"</string>
+    <string name="postalTypeHome" msgid="8165756977184483097">"Гэрийн"</string>
+    <string name="postalTypeWork" msgid="5268172772387694495">"Ажлын"</string>
+    <string name="postalTypeOther" msgid="2726111966623584341">"Бусад"</string>
+    <string name="imTypeCustom" msgid="2074028755527826046">"Тусгай"</string>
+    <string name="imTypeHome" msgid="6241181032954263892">"Гэрийн"</string>
+    <string name="imTypeWork" msgid="1371489290242433090">"Ажлын"</string>
+    <string name="imTypeOther" msgid="5377007495735915478">"Бусад"</string>
+    <string name="imProtocolCustom" msgid="6919453836618749992">"Тусгай"</string>
+    <string name="imProtocolAim" msgid="7050360612368383417">"AIM"</string>
+    <string name="imProtocolMsn" msgid="144556545420769442">"Windows Live"</string>
+    <string name="imProtocolYahoo" msgid="8271439408469021273">"Yahoo"</string>
+    <string name="imProtocolSkype" msgid="9019296744622832951">"Skype"</string>
+    <string name="imProtocolQq" msgid="8887484379494111884">"QQ"</string>
+    <string name="imProtocolGoogleTalk" msgid="493902321140277304">"Цугларалт"</string>
+    <string name="imProtocolIcq" msgid="1574870433606517315">"ICQ"</string>
+    <string name="imProtocolJabber" msgid="2279917630875771722">"Jabber"</string>
+    <string name="imProtocolNetMeeting" msgid="8287625655986827971">"NetMeeting"</string>
+    <string name="orgTypeWork" msgid="29268870505363872">"Ажлын"</string>
+    <string name="orgTypeOther" msgid="3951781131570124082">"Бусад"</string>
+    <string name="orgTypeCustom" msgid="225523415372088322">"Тусгай"</string>
+    <string name="relationTypeCustom" msgid="3542403679827297300">"Тусгай"</string>
+    <string name="relationTypeAssistant" msgid="6274334825195379076">"Туслагч"</string>
+    <string name="relationTypeBrother" msgid="8757913506784067713">"Ах"</string>
+    <string name="relationTypeChild" msgid="1890746277276881626">"Хүүхэд"</string>
+    <string name="relationTypeDomesticPartner" msgid="6904807112121122133">"Дотоод Түнш"</string>
+    <string name="relationTypeFather" msgid="5228034687082050725">"Эцэг"</string>
+    <string name="relationTypeFriend" msgid="7313106762483391262">"Найз"</string>
+    <string name="relationTypeManager" msgid="6365677861610137895">"Менежер"</string>
+    <string name="relationTypeMother" msgid="4578571352962758304">"Эх"</string>
+    <string name="relationTypeParent" msgid="4755635567562925226">"Эцэг эх"</string>
+    <string name="relationTypePartner" msgid="7266490285120262781">"Түнш"</string>
+    <string name="relationTypeReferredBy" msgid="101573059844135524">"Дурдагдсан"</string>
+    <string name="relationTypeRelative" msgid="1799819930085610271">"Хамаатан"</string>
+    <string name="relationTypeSister" msgid="1735983554479076481">"Эгч"</string>
+    <string name="relationTypeSpouse" msgid="394136939428698117">"Хань"</string>
+    <string name="sipAddressTypeCustom" msgid="2473580593111590945">"Тусгай"</string>
+    <string name="sipAddressTypeHome" msgid="6093598181069359295">"Гэрийн"</string>
+    <string name="sipAddressTypeWork" msgid="6920725730797099047">"Ажлын"</string>
+    <string name="sipAddressTypeOther" msgid="4408436162950119849">"Бусад"</string>
+    <string name="keyguard_password_enter_pin_code" msgid="3037685796058495017">"PIN кодыг бичнэ үү"</string>
+    <string name="keyguard_password_enter_puk_code" msgid="4800725266925845333">"PUK-г бичээд шинэ PIN код оруулна уу"</string>
+    <string name="keyguard_password_enter_puk_prompt" msgid="1341112146710087048">"PUK код"</string>
+    <string name="keyguard_password_enter_pin_prompt" msgid="8027680321614196258">"Шинэ PIN код"</string>
+    <string name="keyguard_password_entry_touch_hint" msgid="7858547464982981384"><font size="17">"Нууц үг бичих бол хүрнэ үү"</font></string>
+    <string name="keyguard_password_enter_password_code" msgid="1054721668279049780">"Тайлах нууц үгийг бичнэ үү"</string>
+    <string name="keyguard_password_enter_pin_password_code" msgid="6391755146112503443">"Тайлах PIN-г оруулна уу"</string>
+    <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"Буруу PIN код."</string>
+    <string name="keyguard_label_text" msgid="861796461028298424">"Тайлах бол Цэсийг дараад 0."</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="696192103195090970">"Яаралтай дугаар"</string>
+    <string name="lockscreen_carrier_default" msgid="8963839242565653192">"Үйлчилгээ байхгүй."</string>
+    <string name="lockscreen_screen_locked" msgid="7288443074806832904">"Дэлгэц түгжигдсэн."</string>
+    <string name="lockscreen_instructions_when_pattern_enabled" msgid="46154051614126049">"Яаралтай дуудлага хийх буюу эсвэл түгжээг тайлах бол цэсийг дарна уу."</string>
+    <string name="lockscreen_instructions_when_pattern_disabled" msgid="686260028797158364">"Тайлах бол цэсийг дарна уу."</string>
+    <string name="lockscreen_pattern_instructions" msgid="7478703254964810302">"Тайлах хээгээ зурна уу"</string>
+    <string name="lockscreen_emergency_call" msgid="5347633784401285225">"Яаралтай дуудлага"</string>
+    <string name="lockscreen_return_to_call" msgid="5244259785500040021">"Дуудлагаруу буцах"</string>
+    <string name="lockscreen_pattern_correct" msgid="9039008650362261237">"Зөв!"</string>
+    <string name="lockscreen_pattern_wrong" msgid="4317955014948108794">"Дахин оролдох"</string>
+    <string name="lockscreen_password_wrong" msgid="5737815393253165301">"Дахин оролдох"</string>
+    <string name="faceunlock_multiple_failures" msgid="754137583022792429">"Нүүрээр түгжээ тайлах оролдлогын тоо дээд хэмжээнээс хэтэрсэн"</string>
+    <string name="lockscreen_plugged_in" msgid="8057762828355572315">"Цэнэглэж байна, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
+    <string name="lockscreen_charged" msgid="321635745684060624">"Цэнэглэгдэв"</string>
+    <string name="lockscreen_battery_short" msgid="4477264849386850266">"<xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
+    <string name="lockscreen_low_battery" msgid="1482873981919249740">"Цэнэглэгчээ холбоно уу."</string>
+    <string name="lockscreen_missing_sim_message_short" msgid="5099439277819215399">"SIM карт байхгүй"</string>
+    <string name="lockscreen_missing_sim_message" product="tablet" msgid="151659196095791474">"Таблет SIM картгүй."</string>
+    <string name="lockscreen_missing_sim_message" product="default" msgid="2186920585695169078">"Утсанд SIM карт байхгүй."</string>
+    <string name="lockscreen_missing_sim_instructions" msgid="5372787138023272615">"SIM картыг оруулна уу."</string>
+    <string name="lockscreen_missing_sim_instructions_long" msgid="3526573099019319472">"SIM карт байхгүй эсвэл унших боломжгүй. SIM карт оруулна уу."</string>
+    <string name="lockscreen_permanent_disabled_sim_message_short" msgid="5096149665138916184">"Ашиглах боломжгүй SIM карт."</string>
+    <string name="lockscreen_permanent_disabled_sim_instructions" msgid="910904643433151371">"Таны SIM карт бүрмөсөн идэвхгүй болов.\n Өөр SIM карт авах бол өөрийн утасгүй үйлчилгээний нийлүүлэгчтэй холбогдоно уу."</string>
+    <string name="lockscreen_transport_prev_description" msgid="201594905152746886">"Өмнөх бичлэг товч"</string>
+    <string name="lockscreen_transport_next_description" msgid="6089297650481292363">"Дараагийн бичлэг товч"</string>
+    <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"Түр зогсоох товч"</string>
+    <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"Тоглуулах товч"</string>
+    <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"Зогсоох товч"</string>
+    <string name="emergency_calls_only" msgid="6733978304386365407">"Зөвхөн яаралтай дуудлага"</string>
+    <string name="lockscreen_network_locked_message" msgid="143389224986028501">"Сүлжээ түгжигдсэн"</string>
+    <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"SIM карт нь PUK түгжээтэй."</string>
+    <string name="lockscreen_sim_puk_locked_instructions" msgid="8127916255245181063">"Хэрэглэгчийн зааврыг харах эсвэл Хэрэглэгчдэд Туслах төвтэй холбоо барина уу."</string>
+    <string name="lockscreen_sim_locked_message" msgid="8066660129206001039">"SIM карт түгжигдсэн."</string>
+    <string name="lockscreen_sim_unlock_progress_dialog_message" msgid="595323214052881264">"SIM картны түгжээг гаргаж байна…"</string>
+    <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6481623830344107222">"Та тайлах хээг <xliff:g id="NUMBER_0">%d</xliff:g> удаа буруу зурлаа. \n\n<xliff:g id="NUMBER_1">%d</xliff:g> секундын дараа дахин оролдоно уу."</string>
+    <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="2725973286239344555">"Та нууц үгээ <xliff:g id="NUMBER_0">%d</xliff:g> удаа буруу бичив. \n\n<xliff:g id="NUMBER_1">%d</xliff:g> секундын дараа дахин оролдоно уу."</string>
+    <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6216672706545696955">"Та PIN кодоо <xliff:g id="NUMBER_0">%d</xliff:g> удаа буруу бичив. \n\n<xliff:g id="NUMBER_1">%d</xliff:g> секундын дараа дахин оролдоно уу."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="9191611984625460820">"Та тайлах хээг <xliff:g id="NUMBER_0">%d</xliff:g> удаа буруу зурлаа. <xliff:g id="NUMBER_1">%d</xliff:g> удаа дахин буруу оруулбал, та таблетаа тайлахын тулд Google нэвтрэлтээ ашиглах шаардлагатай болно.\n\n <xliff:g id="NUMBER_2">%d</xliff:g> секундын дараа дахин оролдоно уу."</string>
+    <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="2590227559763762751">"Та тайлах хээг <xliff:g id="NUMBER_0">%d</xliff:g> удаа буруу зурлаа. <xliff:g id="NUMBER_1">%d</xliff:g> удаа дахин буруу оролдвол, та таблетаа тайлахын тулд Google нэвтрэлтээ ашиглах шаардлагатай болно.\n\n <xliff:g id="NUMBER_2">%d</xliff:g> секундын дараа дахин оролдоно уу."</string>
+    <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="6128106399745755604">"Та таблетыг тайлах гэж <xliff:g id="NUMBER_0">%d</xliff:g> удаа буруу оролдлоо. <xliff:g id="NUMBER_1">%d</xliff:g> удаа дахин буруу оролдвол таблет үйлдвэрийн үндсэн утгаараа тохируулагдах ба хэрэглэгчийн дата бүхэлдээ устана."</string>
+    <string name="lockscreen_failed_attempts_almost_at_wipe" product="default" msgid="8603565142156826565">"Та утсыг тайлах гэж <xliff:g id="NUMBER_0">%d</xliff:g> удаа буруу оролдлоо. <xliff:g id="NUMBER_1">%d</xliff:g> удаа дахин буруу оролдвол утас үйлдвэрийн үндсэн утгаараа тохируулагдах ба хэрэглэгчийн дата бүхэлдээ устана."</string>
+    <string name="lockscreen_failed_attempts_now_wiping" product="tablet" msgid="280873516493934365">"Та таблетыг <xliff:g id="NUMBER">%d</xliff:g> удаа тайлах гэж буруу оролдлоо. Таблет одоо үйлдвэрийн үндсэн утгаараа тохируулагдах болно."</string>
+    <string name="lockscreen_failed_attempts_now_wiping" product="default" msgid="3025504721764922246">"Та утсыг тайлах гэж <xliff:g id="NUMBER">%d</xliff:g> удаа буруу оролдлоо. Утас одоо үйлдвэрийн үндсэн утгаараа тохируулагдах болно."</string>
+    <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"<xliff:g id="NUMBER">%d</xliff:g> секундын дараа дахин оролдоно уу."</string>
+    <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"Хээг мартсан уу?"</string>
+    <string name="lockscreen_glogin_forgot_pattern" msgid="2588521501166032747">"Акаунт тайлах"</string>
+    <string name="lockscreen_glogin_too_many_attempts" msgid="2751368605287288808">"Хээ оруулах оролдлого хэт олон"</string>
+    <string name="lockscreen_glogin_instructions" msgid="3931816256100707784">"Түгжээг тайлах бол Google акаунтаараа нэвтэрнэ үү."</string>
+    <string name="lockscreen_glogin_username_hint" msgid="8846881424106484447">"Хэрэглэгч (имэйл)"</string>
+    <string name="lockscreen_glogin_password_hint" msgid="5958028383954738528">"Нууц үг"</string>
+    <string name="lockscreen_glogin_submit_button" msgid="7130893694795786300">"Нэвтрэх"</string>
+    <string name="lockscreen_glogin_invalid_input" msgid="1364051473347485908">"Хэрэглэгчийн нэр эсвэл нууц үг буруу."</string>
+    <string name="lockscreen_glogin_account_recovery_hint" msgid="1696924763690379073">"Хэрэглэгчийн нэр нууц үгээ мартсан уу?\n"<b>"google.com/accounts/recovery"</b>"-д зочилно уу."</string>
+    <string name="lockscreen_glogin_checking_password" msgid="7114627351286933867">"Шалгаж байна..."</string>
+    <string name="lockscreen_unlock_label" msgid="737440483220667054">"Тайлах"</string>
+    <string name="lockscreen_sound_on_label" msgid="9068877576513425970">"Дуу идэвхтэй"</string>
+    <string name="lockscreen_sound_off_label" msgid="996822825154319026">"Дууг хаагдсан"</string>
+    <string name="lockscreen_access_pattern_start" msgid="3941045502933142847">"Хээ эхэлж байна"</string>
+    <string name="lockscreen_access_pattern_cleared" msgid="5583479721001639579">"Хээ цэвэрлэгдэв"</string>
+    <string name="lockscreen_access_pattern_cell_added" msgid="6756031208359292487">"Нүд нэмэгдсэн"</string>
+    <string name="lockscreen_access_pattern_detected" msgid="4988730895554057058">"Хээ дуусав"</string>
+    <string name="keyguard_accessibility_widget_changed" msgid="5678624624681400191">"%1$s. %3$d. -н %2$d виджет"</string>
+    <string name="keyguard_accessibility_add_widget" msgid="8273277058724924654">"Виджет нэмэх."</string>
+    <string name="keyguard_accessibility_widget_empty_slot" msgid="1281505703307930757">"Хоосон"</string>
+    <string name="keyguard_accessibility_unlock_area_expanded" msgid="2278106022311170299">"Тайлах хэсэг нээгдсэн."</string>
+    <string name="keyguard_accessibility_unlock_area_collapsed" msgid="6366992066936076396">"Тайлах хэсэг хаагдсан."</string>
+    <string name="keyguard_accessibility_widget" msgid="6527131039741808240">"<xliff:g id="WIDGET_INDEX">%1$s</xliff:g> виджет."</string>
+    <string name="keyguard_accessibility_user_selector" msgid="1226798370913698896">"Хэрэглэгч сонгоч"</string>
+    <string name="keyguard_accessibility_status" msgid="8008264603935930611">"Статус"</string>
+    <string name="keyguard_accessibility_camera" msgid="8904231194181114603">"Камер"</string>
+    <string name="keygaurd_accessibility_media_controls" msgid="262209654292161806">"Медиа контрол"</string>
+    <string name="keyguard_accessibility_widget_reorder_start" msgid="8736853615588828197">"Виджет дахин эрэмбэлж эхлэв."</string>
+    <string name="keyguard_accessibility_widget_reorder_end" msgid="7170190950870468320">"Виджетийг дахин эрэмбэлж дуусав."</string>
+    <string name="keyguard_accessibility_widget_deleted" msgid="4426204263929224434">"<xliff:g id="WIDGET_INDEX">%1$s</xliff:g> виджет устсан."</string>
+    <string name="keyguard_accessibility_expand_lock_area" msgid="519859720934178024">"Түгжээгүй хэсгийг өргөсгөх."</string>
+    <string name="keyguard_accessibility_slide_unlock" msgid="2959928478764697254">"Тайлах гулсуулалт."</string>
+    <string name="keyguard_accessibility_pattern_unlock" msgid="1490840706075246612">"Тайлах хээ."</string>
+    <string name="keyguard_accessibility_face_unlock" msgid="4817282543351718535">"Нүүрээр тайлах"</string>
+    <string name="keyguard_accessibility_pin_unlock" msgid="2469687111784035046">"Тайлах пин."</string>
+    <string name="keyguard_accessibility_password_unlock" msgid="7675777623912155089">"Тайлах нууц үг."</string>
+    <string name="keyguard_accessibility_pattern_area" msgid="7679891324509597904">"Хээний хэсэг."</string>
+    <string name="keyguard_accessibility_slide_area" msgid="6736064494019979544">"Гулсуулах хэсэг."</string>
+    <string name="password_keyboard_label_symbol_key" msgid="992280756256536042">"?123"</string>
+    <string name="password_keyboard_label_alpha_key" msgid="8001096175167485649">"АБВ"</string>
+    <string name="password_keyboard_label_alt_key" msgid="1284820942620288678">"ALT"</string>
+    <string name="granularity_label_character" msgid="7336470535385009523">"тэмдэгт"</string>
+    <string name="granularity_label_word" msgid="7075570328374918660">"үг"</string>
+    <string name="granularity_label_link" msgid="5815508880782488267">"холбоос"</string>
+    <string name="granularity_label_line" msgid="5764267235026120888">"Мөр"</string>
+    <string name="hour_ampm" msgid="4584338083529355982">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
+    <string name="hour_cap_ampm" msgid="2083465992940444366">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
+    <string name="factorytest_failed" msgid="5410270329114212041">"Үйлдлвэрийн тест бүтэлгүйтэв"</string>
+    <string name="factorytest_not_system" msgid="4435201656767276723">"FACTORY_TEST үйлдэл нь зөвхөн /system/app-д суусан багцуудад дэмжигдэнэ."</string>
+    <string name="factorytest_no_action" msgid="872991874799998561">"FACTORY_TEST үйлдлийг хангах багц олдсонгүй."</string>
+    <string name="factorytest_reboot" msgid="6320168203050791643">"Дахин асаах"</string>
+    <string name="js_dialog_title" msgid="1987483977834603872">"\"<xliff:g id="TITLE">%s</xliff:g>\" хуудас:"</string>
+    <string name="js_dialog_title_default" msgid="6961903213729667573">"JavaScript"</string>
+    <string name="js_dialog_before_unload_title" msgid="2619376555525116593">"Шилжүүлэлтийг бататгах"</string>
+    <string name="js_dialog_before_unload_positive_button" msgid="3112752010600484130">"Энэ хуудсыг орхих"</string>
+    <string name="js_dialog_before_unload_negative_button" msgid="5614861293026099715">"Энэ хуудсанд үлдэх"</string>
+    <string name="js_dialog_before_unload" msgid="3468816357095378590">"<xliff:g id="MESSAGE">%s</xliff:g>\n\nТа үнэхээр энэ хуудаснаас гармаар байна уу?"</string>
+    <string name="save_password_label" msgid="6860261758665825069">"Баталгаажуулах"</string>
+    <string name="double_tap_toast" msgid="4595046515400268881">"Зөвлөмж: Өсгөх бол давхар товшино уу."</string>
+    <string name="autofill_this_form" msgid="4616758841157816676">"Автомат бичих"</string>
+    <string name="setup_autofill" msgid="7103495070180590814">"Автомат дүүргэлтийг тохируулах"</string>
+    <string name="autofill_address_name_separator" msgid="6350145154779706772">" "</string>
+    <string name="autofill_address_summary_name_format" msgid="3268041054899214945">"$1$2$3"</string>
+    <string name="autofill_address_summary_separator" msgid="7483307893170324129">", "</string>
+    <string name="autofill_address_summary_format" msgid="4874459455786827344">"$1$2$3"</string>
+    <string name="autofill_province" msgid="2231806553863422300">"Муж"</string>
+    <string name="autofill_postal_code" msgid="4696430407689377108">"Шуудангийн код"</string>
+    <string name="autofill_state" msgid="6988894195520044613">"Муж"</string>
+    <string name="autofill_zip_code" msgid="8697544592627322946">"ZIP код"</string>
+    <string name="autofill_county" msgid="237073771020362891">"Муж"</string>
+    <string name="autofill_island" msgid="4020100875984667025">"Арал"</string>
+    <string name="autofill_district" msgid="8400735073392267672">"Дүүрэг"</string>
+    <string name="autofill_department" msgid="5343279462564453309">"Хэлтэс"</string>
+    <string name="autofill_prefecture" msgid="2028499485065800419">"Муж"</string>
+    <string name="autofill_parish" msgid="8202206105468820057">"Мөргөлч"</string>
+    <string name="autofill_area" msgid="3547409050889952423">"Хэсэг"</string>
+    <string name="autofill_emirate" msgid="2893880978835698818">"Эмират"</string>
+    <string name="permlab_readHistoryBookmarks" msgid="3775265775405106983">"өөрийн Веб хавчуурга болон түүхийг унших"</string>
+    <string name="permdesc_readHistoryBookmarks" msgid="8462378226600439658">"Апп нь Хөтчийн зочилж байсан бүх URL-н түүх болон Хөтчийн бүх хавчуургыг унших боломжтой. Анхаар: Энэ зөвшөөрөл нь гуравдагч талын хөтөч эсвэл вебээр хөтөчлөх чадавхтай аппликешнүүдэд ашиглагдахгүй байх боломжтой."</string>
+    <string name="permlab_writeHistoryBookmarks" msgid="3714785165273314490">"веб хавчуурга болон түүхийг бичих"</string>
+    <string name="permdesc_writeHistoryBookmarks" product="tablet" msgid="6825527469145760922">"Апп нь таны таблет дээр хадгалагдсан Хөтчийн түүх эсвэл хавчуургыг өөрчлөх боломжтой. Энэ нь апп-д Хөтчийн датаг арилгах эсвэл өөрчлөх боломжийг олгоно. Анхаар: Энэ зөвшөөрөл нь гуравдагч талын хөтөч эсвэл вебээр хөтөчлөх чадвартай аппликешнд ажиллахгүй байх боломжтой."</string>
+    <string name="permdesc_writeHistoryBookmarks" product="default" msgid="8497389531014185509">"Апп нь таны утсан дээр хадгалагдсан Хөтчийн түүх эсвэл хавчуургыг өөрчлөх боломжтой. Энэ нь апп-д Хөтчийн датаг арилгах эсвэл өөрчлөх боломжийг олгоно. Анхаар: Энэ зөвшөөрөл нь гуравдагч талын хөтөч эсвэл вебээр хөтөчлөх чадвартай аппликешнд ажиллахгүй байх боломжтой."</string>
+    <string name="permlab_setAlarm" msgid="1379294556362091814">"сэрүүлэг тохируулах"</string>
+    <string name="permdesc_setAlarm" msgid="316392039157473848">"Апп нь суулгагдсан сэрүүлэгний апп дээр сэрүүлэг тохируулах боломжтой. Зарим сэрүүлэгний апп нь энэ функцийг дэмжихгүй байж болзошгүй."</string>
+    <string name="permlab_addVoicemail" msgid="5525660026090959044">"дуут шуудан нэмэх"</string>
+    <string name="permdesc_addVoicemail" msgid="6604508651428252437">"Апп нь таны дуут шуудангийн ирсэн мэйлд мессеж нэмэх боломжтой."</string>
+    <string name="permlab_writeGeolocationPermissions" msgid="5962224158955273932">"Хөтчийн геобайршлын зөвшөөрлийг өөрчлөх"</string>
+    <string name="permdesc_writeGeolocationPermissions" msgid="1083743234522638747">"Апп нь Хөтчийн гео байршлын зөвшөөрлийг өөрчлөх боломжтой. Хортой апп нь энийг ашиглан дурын веб хуудасруу байршлын мэдээллийг илгээх боломжтой."</string>
+    <string name="permlab_packageVerificationAgent" msgid="5568139100645829117">"багцийг тулгах"</string>
+    <string name="permdesc_packageVerificationAgent" msgid="8437590190990843381">"Апп нь багцыг суулгаж болох эсэхийг шалгах боломжтой."</string>
+    <string name="permlab_bindPackageVerifier" msgid="4187786793360326654">"багц тулгагчтэй холбох"</string>
+    <string name="permdesc_bindPackageVerifier" msgid="3180741773233862126">"Эзэмшигч нь багц тулгагчдад хүсэлт тавих боломжтой. Энгийн апп-д хэрэглэгдэхгүй."</string>
+    <string name="permlab_serialPort" msgid="546083327654631076">"сериал портруу хандах"</string>
+    <string name="permdesc_serialPort" msgid="2991639985224598193">"Эзэмшигч нь SerialManager API ашиглан сериал портод хандах боломжтой."</string>
+    <string name="permlab_accessContentProvidersExternally" msgid="5077774297943409285">"контент нийлүүлэгчид гаднаас хандах"</string>
+    <string name="permdesc_accessContentProvidersExternally" msgid="4544346486697853685">"Эзэмшигч нь шелээс контент нийлүүлэгчид хандах боломжтой. Энгийн апп-с хэрэглэхгүй."</string>
+    <string name="permlab_updateLock" msgid="3527558366616680889">"төхөөрөмжийн автомат шинэчлэлтийг хориглох"</string>
+    <string name="permdesc_updateLock" msgid="1655625832166778492">"Эзэмшигч нь төхөөрөмжийг дэвшүүлэхээр хэзээ дахин асаавал тохирох тухай системд мэдээлэл санал болгох боломжтой."</string>
+    <string name="save_password_message" msgid="767344687139195790">"Та хөтчид энэ нууц үгийг сануулах уу?"</string>
+    <string name="save_password_notnow" msgid="6389675316706699758">"Одоо биш"</string>
+    <string name="save_password_remember" msgid="6491879678996749466">"Санах"</string>
+    <string name="save_password_never" msgid="8274330296785855105">"Хэзээ ч үгүй"</string>
+    <string name="open_permission_deny" msgid="7374036708316629800">"Танд энэ хуудсыг нээх зөвшөөрөл байхгүй."</string>
+    <string name="text_copied" msgid="4985729524670131385">"Текст хуулагдав."</string>
+    <string name="more_item_label" msgid="4650918923083320495">"Илүү"</string>
+    <string name="prepend_shortcut_label" msgid="2572214461676015642">"Цэс+"</string>
+    <string name="menu_space_shortcut_label" msgid="2410328639272162537">"зай"</string>
+    <string name="menu_enter_shortcut_label" msgid="2743362785111309668">"оруулах"</string>
+    <string name="menu_delete_shortcut_label" msgid="3658178007202748164">"устгах"</string>
+    <string name="search_go" msgid="8298016669822141719">"Хайх"</string>
+    <string name="searchview_description_search" msgid="6749826639098512120">"Хайх"</string>
+    <string name="searchview_description_query" msgid="5911778593125355124">"Хайх асуулга"</string>
+    <string name="searchview_description_clear" msgid="1330281990951833033">"Асуулгыг цэвэрлэх"</string>
+    <string name="searchview_description_submit" msgid="2688450133297983542">"Асуулгыг илгээх"</string>
+    <string name="searchview_description_voice" msgid="2453203695674994440">"Дуут хайлт"</string>
+    <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"Хүрч хайх функцийг идэвхтэй болгох уу?"</string>
+    <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> нь Хүрч танихыг идэвхжүүлэхийг шаардаж байна. Хүрч таних идэвхжсэн үед та хуруун доороо юу байгааг сонсох, тайлбарыг харах боломжтой ба таблеттайгаа дохиогоор харилцах боломжтой."</string>
+    <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> нь Хүрч танихыг идэвхжүүлэхийг шаардаж байна. Хүрч таних идэвхжсэн тохиолдолд та хуруун доороо юу байгааг сонсох, тайлбарыг харах боломжтой ба утастайгаа дохиогоор харилцах боломжтой."</string>
+    <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 сарын өмнө"</string>
+    <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"1 сарын өмнө"</string>
+  <plurals name="num_seconds_ago">
+    <item quantity="one" msgid="4869870056547896011">"1 секундын өмнө"</item>
+    <item quantity="other" msgid="3903706804349556379">"<xliff:g id="COUNT">%d</xliff:g> секундын өмнө"</item>
+  </plurals>
+  <plurals name="num_minutes_ago">
+    <item quantity="one" msgid="3306787433088810191">"1 минутын өмнө"</item>
+    <item quantity="other" msgid="2176942008915455116">"<xliff:g id="COUNT">%d</xliff:g> минутын өмнө"</item>
+  </plurals>
+  <plurals name="num_hours_ago">
+    <item quantity="one" msgid="9150797944610821849">"1 цагийн өмнө"</item>
+    <item quantity="other" msgid="2467273239587587569">"<xliff:g id="COUNT">%d</xliff:g> цагийн өмнө"</item>
+  </plurals>
+  <plurals name="last_num_days">
+    <item quantity="other" msgid="3069992808164318268">"Сүүлийн <xliff:g id="COUNT">%d</xliff:g> өдөр"</item>
+  </plurals>
+    <string name="last_month" msgid="3959346739979055432">"Сүүлийн сар"</string>
+    <string name="older" msgid="5211975022815554840">"Хуучин"</string>
+  <plurals name="num_days_ago">
+    <item quantity="one" msgid="861358534398115820">"өчигдөр"</item>
+    <item quantity="other" msgid="2479586466153314633">"<xliff:g id="COUNT">%d</xliff:g> өдрийн өмнө"</item>
+  </plurals>
+  <plurals name="in_num_seconds">
+    <item quantity="one" msgid="2729745560954905102">"1 секундын дараа"</item>
+    <item quantity="other" msgid="1241926116443974687">"<xliff:g id="COUNT">%d</xliff:g> секундын дараа"</item>
+  </plurals>
+  <plurals name="in_num_minutes">
+    <item quantity="one" msgid="8793095251325200395">"1 минутын дараа"</item>
+    <item quantity="other" msgid="3330713936399448749">"<xliff:g id="COUNT">%d</xliff:g> минутын дараа"</item>
+  </plurals>
+  <plurals name="in_num_hours">
+    <item quantity="one" msgid="7164353342477769999">"1 цагийн дараа"</item>
+    <item quantity="other" msgid="547290677353727389">"<xliff:g id="COUNT">%d</xliff:g> цагийн дараа"</item>
+  </plurals>
+  <plurals name="in_num_days">
+    <item quantity="one" msgid="5413088743009839518">"маргааш"</item>
+    <item quantity="other" msgid="5109449375100953247">"<xliff:g id="COUNT">%d</xliff:g> өдрийн дараа"</item>
+  </plurals>
+  <plurals name="abbrev_num_seconds_ago">
+    <item quantity="one" msgid="1849036840200069118">"1 секундын өмнө"</item>
+    <item quantity="other" msgid="3699169366650930415">"<xliff:g id="COUNT">%d</xliff:g> сек дараа"</item>
+  </plurals>
+  <plurals name="abbrev_num_minutes_ago">
+    <item quantity="one" msgid="6361490147113871545">"1 мин өмнө"</item>
+    <item quantity="other" msgid="851164968597150710">"<xliff:g id="COUNT">%d</xliff:g> минутын өмнө"</item>
+  </plurals>
+  <plurals name="abbrev_num_hours_ago">
+    <item quantity="one" msgid="4796212039724722116">"1 цагийн өмнө"</item>
+    <item quantity="other" msgid="6889970745748538901">"<xliff:g id="COUNT">%d</xliff:g> цагийн өмнө"</item>
+  </plurals>
+  <plurals name="abbrev_num_days_ago">
+    <item quantity="one" msgid="8463161711492680309">"өчигдөр"</item>
+    <item quantity="other" msgid="3453342639616481191">"<xliff:g id="COUNT">%d</xliff:g> өдрийн өмнө"</item>
+  </plurals>
+  <plurals name="abbrev_in_num_seconds">
+    <item quantity="one" msgid="5842225370795066299">"1 сек дараа"</item>
+    <item quantity="other" msgid="5495880108825805108">"<xliff:g id="COUNT">%d</xliff:g> сек дараа"</item>
+  </plurals>
+  <plurals name="abbrev_in_num_minutes">
+    <item quantity="one" msgid="562786149928284878">"1 мин дараа"</item>
+    <item quantity="other" msgid="4216113292706568726">"<xliff:g id="COUNT">%d</xliff:g> минутын дараа"</item>
+  </plurals>
+  <plurals name="abbrev_in_num_hours">
+    <item quantity="one" msgid="3274708118124045246">"1 цагийн дараа"</item>
+    <item quantity="other" msgid="3705373766798013406">"<xliff:g id="COUNT">%d</xliff:g> цагийн дараа"</item>
+  </plurals>
+  <plurals name="abbrev_in_num_days">
+    <item quantity="one" msgid="2178576254385739855">"маргааш"</item>
+    <item quantity="other" msgid="2973062968038355991">"<xliff:g id="COUNT">%d</xliff:g> өдрийн дараа"</item>
+  </plurals>
+    <string name="preposition_for_date" msgid="9093949757757445117">"<xliff:g id="DATE">%s</xliff:g>"</string>
+    <string name="preposition_for_time" msgid="5506831244263083793">"<xliff:g id="TIME">%s</xliff:g>"</string>
+    <string name="preposition_for_year" msgid="5040395640711867177">"<xliff:g id="YEAR">%s</xliff:g>"</string>
+    <string name="day" msgid="8144195776058119424">"өдөр"</string>
+    <string name="days" msgid="4774547661021344602">"өдөр"</string>
+    <string name="hour" msgid="2126771916426189481">"цаг"</string>
+    <string name="hours" msgid="894424005266852993">"цаг"</string>
+    <string name="minute" msgid="9148878657703769868">"мин"</string>
+    <string name="minutes" msgid="5646001005827034509">"минут"</string>
+    <string name="second" msgid="3184235808021478">"сек"</string>
+    <string name="seconds" msgid="3161515347216589235">"сек"</string>
+    <string name="week" msgid="5617961537173061583">"7 хоног"</string>
+    <string name="weeks" msgid="6509623834583944518">"7 хоног"</string>
+    <string name="year" msgid="4001118221013892076">"жил"</string>
+    <string name="years" msgid="6881577717993213522">"жил"</string>
+  <plurals name="duration_seconds">
+    <item quantity="one" msgid="6962015528372969481">"1 секунд"</item>
+    <item quantity="other" msgid="1886107766577166786">"<xliff:g id="COUNT">%d</xliff:g> секунд"</item>
+  </plurals>
+  <plurals name="duration_minutes">
+    <item quantity="one" msgid="4915414002546085617">"1 минут"</item>
+    <item quantity="other" msgid="3165187169224908775">"<xliff:g id="COUNT">%d</xliff:g> минут"</item>
+  </plurals>
+  <plurals name="duration_hours">
+    <item quantity="one" msgid="8917467491248809972">"1 цаг"</item>
+    <item quantity="other" msgid="3863962854246773930">"<xliff:g id="COUNT">%d</xliff:g> цаг"</item>
+  </plurals>
+    <string name="VideoView_error_title" msgid="3534509135438353077">"Видео алдаа"</string>
+    <string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"Энэ видео энэ төхөөрөмж дээр урсгалаар гарч чадахгүй."</string>
+    <string name="VideoView_error_text_unknown" msgid="3450439155187810085">"Энэ видеог тоглуулах боломжгүй."</string>
+    <string name="VideoView_error_button" msgid="2822238215100679592">"Тийм"</string>
+    <string name="relative_time" msgid="1818557177829411417">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
+    <string name="noon" msgid="7245353528818587908">"үд"</string>
+    <string name="Noon" msgid="3342127745230013127">"Үд"</string>
+    <string name="midnight" msgid="7166259508850457595">"шөнө дунд"</string>
+    <string name="Midnight" msgid="5630806906897892201">"Шөнө дунд"</string>
+    <string name="elapsed_time_short_format_mm_ss" msgid="4431555943828711473">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
+    <string name="elapsed_time_short_format_h_mm_ss" msgid="1846071997616654124">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
+    <string name="selectAll" msgid="6876518925844129331">"Бүгдийг сонгох"</string>
+    <string name="cut" msgid="3092569408438626261">"Таслах"</string>
+    <string name="copy" msgid="2681946229533511987">"Хуулах"</string>
+    <string name="paste" msgid="5629880836805036433">"Буулгах"</string>
+    <string name="replace" msgid="5781686059063148930">"Орлуулах…"</string>
+    <string name="delete" msgid="6098684844021697789">"Устгах"</string>
+    <string name="copyUrl" msgid="2538211579596067402">"URL хуулах"</string>
+    <string name="selectTextMode" msgid="1018691815143165326">"Текст сонгох"</string>
+    <string name="textSelectionCABTitle" msgid="5236850394370820357">"Текст сонгох"</string>
+    <string name="addToDictionary" msgid="4352161534510057874">"Толь бичигт нэмэх"</string>
+    <string name="deleteText" msgid="6979668428458199034">"Устгах"</string>
+    <string name="inputMethod" msgid="1653630062304567879">"Оруулах арга"</string>
+    <string name="editTextMenuTitle" msgid="4909135564941815494">"Текст үйлдэл"</string>
+    <string name="low_internal_storage_view_title" msgid="5576272496365684834">"Сангийн хэмжээ дутагдаж байна"</string>
+    <string name="low_internal_storage_view_text" msgid="6640505817617414371">"Зарим систем функц ажиллахгүй байна"</string>
+    <string name="app_running_notification_title" msgid="8718335121060787914">"<xliff:g id="APP_NAME">%1$s</xliff:g> ажиллаж байна"</string>
+    <string name="app_running_notification_text" msgid="4653586947747330058">"Илүү мэдээлэл авах бол хүрэх эсвэл апп-г зогсооно уу ."</string>
+    <string name="ok" msgid="5970060430562524910">"Тийм"</string>
+    <string name="cancel" msgid="6442560571259935130">"Цуцлах"</string>
+    <string name="yes" msgid="5362982303337969312">"Тийм"</string>
+    <string name="no" msgid="5141531044935541497">"Цуцлах"</string>
+    <string name="dialog_alert_title" msgid="2049658708609043103">"Анхаар"</string>
+    <string name="loading" msgid="7933681260296021180">"Ачааллаж байна..."</string>
+    <string name="capital_on" msgid="1544682755514494298">"Идэвхтэй"</string>
+    <string name="capital_off" msgid="6815870386972805832">"Идэвхгүй"</string>
+    <string name="whichApplication" msgid="4533185947064773386">"Үйлдлийг дуусгах"</string>
+    <string name="alwaysUse" msgid="4583018368000610438">"Энэ ажиллагааг үндсэн болгох."</string>
+    <string name="clearDefaultHintMsg" msgid="3252584689512077257">"Систем тохиргоо &gt; Апп &gt; Татаж авсан хэсгийн үндсэн утгуудыг цэвэрлэх"</string>
+    <string name="chooseActivity" msgid="7486876147751803333">"Үйлдэл сонгох"</string>
+    <string name="chooseUsbActivity" msgid="6894748416073583509">"USB төхөөрөмжийн апп-г сонгох"</string>
+    <string name="noApplications" msgid="2991814273936504689">"Энэ ажиллагааг гүйцэтгэх апп байхгүй."</string>
+    <string name="aerr_title" msgid="1905800560317137752"></string>
+    <string name="aerr_application" msgid="932628488013092776">"Харамсалтай, <xliff:g id="APPLICATION">%1$s</xliff:g> зогссон."</string>
+    <string name="aerr_process" msgid="4507058997035697579">"Харамсалтай нь <xliff:g id="PROCESS">%1$s</xliff:g> процесс зогссон."</string>
+    <string name="anr_title" msgid="4351948481459135709"></string>
+    <string name="anr_activity_application" msgid="1904477189057199066">"<xliff:g id="APPLICATION">%2$s</xliff:g> хариу өгөхгүй байна.\n\nТа хаамаар байна уу?"</string>
+    <string name="anr_activity_process" msgid="5776209883299089767">"<xliff:g id="ACTIVITY">%1$s</xliff:g> активити хариу өгөхгүй байна.\n\nТа энийг хаах уу?"</string>
+    <string name="anr_application_process" msgid="8941757607340481057">"<xliff:g id="APPLICATION">%1$s</xliff:g> хариу өгөхгүй байна. Та энийг хаамаар байна уу?"</string>
+    <string name="anr_process" msgid="6513209874880517125">"<xliff:g id="PROCESS">%1$s</xliff:g> процесс хариу өгөхгүй байн.\n\nТа хаамаар байна уу?"</string>
+    <string name="force_close" msgid="8346072094521265605">"Тийм"</string>
+    <string name="report" msgid="4060218260984795706">"Мэдэгдэх"</string>
+    <string name="wait" msgid="7147118217226317732">"Хүлээх"</string>
+    <string name="webpage_unresponsive" msgid="3272758351138122503">"Хуудас хариу өгөхгүй байна.\n\nТа энийг хаах уу?"</string>
+    <string name="launch_warning_title" msgid="1547997780506713581">"Aпп дахин чиглүүлэгдэв"</string>
+    <string name="launch_warning_replace" msgid="6202498949970281412">"<xliff:g id="APP_NAME">%1$s</xliff:g> одоо ажиллаж байна."</string>
+    <string name="launch_warning_original" msgid="188102023021668683">"<xliff:g id="APP_NAME">%1$s</xliff:g> ажиллав."</string>
+    <string name="screen_compat_mode_scale" msgid="3202955667675944499">"Цар хэмжээ"</string>
+    <string name="screen_compat_mode_show" msgid="4013878876486655892">"Байнга харуулах"</string>
+    <string name="screen_compat_mode_hint" msgid="1064524084543304459">"Энийг Системийн тохиргоо &gt; Апп &gt; Татаж авсан дотроос дахин идэвхтэй болгох боломжтой."</string>
+    <string name="smv_application" msgid="3307209192155442829">"<xliff:g id="APPLICATION">%1$s</xliff:g> апп (<xliff:g id="PROCESS">%2$s</xliff:g> процесс) өөрийнхөө StrictMode бодлогыг зөрчив."</string>
+    <string name="smv_process" msgid="5120397012047462446">"<xliff:g id="PROCESS">%1$s</xliff:g> процесс өөрийнхөө StrictMode бодлогыг зөрчив."</string>
+    <string name="android_upgrading_title" msgid="1584192285441405746">"Андройдыг дэвшүүлж байна…"</string>
+    <string name="android_upgrading_apk" msgid="7904042682111526169">"<xliff:g id="NUMBER_1">%2$d</xliff:g>-н <xliff:g id="NUMBER_0">%1$d</xliff:g> апп-г тохируулж байна."</string>
+    <string name="android_upgrading_starting_apps" msgid="451464516346926713">"Апп-г эхлүүлж байна."</string>
+    <string name="android_upgrading_complete" msgid="1405954754112999229">"Эхлэлийг дуусгаж байна."</string>
+    <string name="heavy_weight_notification" msgid="9087063985776626166">"<xliff:g id="APP">%1$s</xliff:g> ажиллаж байна"</string>
+    <string name="heavy_weight_notification_detail" msgid="1721681741617898865">"Апп сэлгэх бол хүрнэ үү"</string>
+    <string name="heavy_weight_switcher_title" msgid="7153167085403298169">"Апп сэлгэх үү?"</string>
+    <string name="heavy_weight_switcher_text" msgid="7022631924534406403">"Та шинэ апп-г ажиллуулахын өмнө зогсоох ёстой өөр апп ажиллаж байна."</string>
+    <string name="old_app_action" msgid="493129172238566282">"<xliff:g id="OLD_APP">%1$s</xliff:g>-руу буцах"</string>
+    <string name="old_app_description" msgid="2082094275580358049">"Шинэ апп-г эхлүүлж болохгүй."</string>
+    <string name="new_app_action" msgid="5472756926945440706">"<xliff:g id="OLD_APP">%1$s</xliff:g> эхлүүлэх"</string>
+    <string name="new_app_description" msgid="1932143598371537340">"Хуучин апп-г хадгалахгүйгээр зогсооно уу."</string>
+    <string name="sendText" msgid="5209874571959469142">"Текст илгээх үйлдлийг сонгох"</string>
+    <string name="volume_ringtone" msgid="6885421406845734650">"Хонхны аяны хэмжээ"</string>
+    <string name="volume_music" msgid="5421651157138628171">"Медиа дууны хэмжээ"</string>
+    <string name="volume_music_hint_playing_through_bluetooth" msgid="9165984379394601533">"Блютүүтээр тоглож байна"</string>
+    <string name="volume_music_hint_silent_ringtone_selected" msgid="8310739960973156272">"Хонхны дууг чимээгүй болгов"</string>
+    <string name="volume_call" msgid="3941680041282788711">"Ирсэн дуудлагын дууны хэмжээ"</string>
+    <string name="volume_bluetooth_call" msgid="2002891926351151534">"Блютүүт ирсэн дуудлагын дууны хэмжээ"</string>
+    <string name="volume_alarm" msgid="1985191616042689100">"Сэрүүлгийн дууны хэмжээ"</string>
+    <string name="volume_notification" msgid="2422265656744276715">"Мэдэгдлийн дууны хэмжээ"</string>
+    <string name="volume_unknown" msgid="1400219669770445902">"Дууны хэмжээ"</string>
+    <string name="volume_icon_description_bluetooth" msgid="6538894177255964340">"Блютүүтын хэмжээ"</string>
+    <string name="volume_icon_description_ringer" msgid="3326003847006162496">"Хонхны дууны хэмжээ"</string>
+    <string name="volume_icon_description_incall" msgid="8890073218154543397">"Дуудлагын дууны хэмжээ"</string>
+    <string name="volume_icon_description_media" msgid="4217311719665194215">"Медиа дууны хэмжээ"</string>
+    <string name="volume_icon_description_notification" msgid="7044986546477282274">"Мэдэгдлийн дууны хэмжээ"</string>
+    <string name="ringtone_default" msgid="3789758980357696936">"Үндсэн хонхны ая"</string>
+    <string name="ringtone_default_with_actual" msgid="8129563480895990372">"Үндсэн хонхны ая (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_silent" msgid="7937634392408977062">"Алийг нь ч биш"</string>
+    <string name="ringtone_picker_title" msgid="3515143939175119094">"Хонхны ая"</string>
+    <string name="ringtone_unknown" msgid="5477919988701784788">"Үл мэдэгдэх хонхны ая"</string>
+  <plurals name="wifi_available">
+    <item quantity="one" msgid="6654123987418168693">"Wi-Fi сүлжээ ашиглах боломжтой"</item>
+    <item quantity="other" msgid="4192424489168397386">"Wi-Fi сүлжээ ашиглах боломжгүй"</item>
+  </plurals>
+  <plurals name="wifi_available_detailed">
+    <item quantity="one" msgid="1634101450343277345">"Нээллтэй Wi-Fi сүлжээ ашиглах боломжтой"</item>
+    <item quantity="other" msgid="7915895323644292768">"Нээлттэй Wi-Fi сүлжээ ашиглах боломжтой"</item>
+  </plurals>
+    <string name="wifi_available_sign_in" msgid="4029489716605255386">"Wi-Fi сүлжээнд нэвтэрнэ үү"</string>
+    <string name="network_available_sign_in" msgid="8495155593358054676">"Сүлжээнд нэвтрэх"</string>
+    <!-- no translation found for network_available_sign_in_detailed (8000081941447976118) -->
+    <skip />
+    <string name="wifi_watchdog_network_disabled" msgid="7904214231651546347">"Wi-Fi-д холбогдож чадсангүй"</string>
+    <string name="wifi_watchdog_network_disabled_detailed" msgid="5548780776418332675">" Интернет холболт муу байна."</string>
+    <string name="wifi_p2p_dialog_title" msgid="97611782659324517">"Wi-Fi Шууд"</string>
+    <string name="wifi_p2p_turnon_message" msgid="2909250942299627244">"Wi-Fi Шуудыг эхлүүлнэ үү. Энэ нь Wi-Fi клиент/холболтын цэг унтраана."</string>
+    <string name="wifi_p2p_failed_message" msgid="3763669677935623084">"Wi-Fi Шуудыг эхлүүлж чадсангүй."</string>
+    <string name="wifi_p2p_enabled_notification_title" msgid="2068321881673734886">"Wi-Fi Шууд асав"</string>
+    <string name="wifi_p2p_enabled_notification_message" msgid="1638949953993894335">"Тохируулах бол хүрнэ үү"</string>
+    <string name="accept" msgid="1645267259272829559">"Зөвшөөрөх"</string>
+    <string name="decline" msgid="2112225451706137894">"Татгалзах"</string>
+    <string name="wifi_p2p_invitation_sent_title" msgid="1318975185112070734">"Урилга илгээгдсэн"</string>
+    <string name="wifi_p2p_invitation_to_connect_title" msgid="4958803948658533637">"Холбох урилга"</string>
+    <string name="wifi_p2p_from_message" msgid="570389174731951769">"Хэнээс:"</string>
+    <string name="wifi_p2p_to_message" msgid="248968974522044099">"Хэнд:"</string>
+    <string name="wifi_p2p_enter_pin_message" msgid="5920929550367828970">"Шаардлагатай PIN-г бичнэ үү:"</string>
+    <string name="wifi_p2p_show_pin_message" msgid="8530563323880921094">"PIN:"</string>
+    <string name="wifi_p2p_frequency_conflict_message" product="tablet" msgid="8012981257742232475">"Таблет <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-тэй холбогдох үедээ түр зуур Wi-Fi-с салах болно."</string>
+    <string name="wifi_p2p_frequency_conflict_message" product="default" msgid="7363907213787469151">"Утас <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-тай холбогдох үедээ түр зуур Wi-Fi-с салах болно."</string>
+    <string name="select_character" msgid="3365550120617701745">"Тэмдэгт оруулах"</string>
+    <string name="sms_control_title" msgid="7296612781128917719">"SMS мессеж илгээж байна"</string>
+    <string name="sms_control_message" msgid="3867899169651496433">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; их хэмжээний SMS мессежийг илгээж байна. Та энэ апп-д үргэлжлүүлэн мессеж илгээхийг зөвшөөрөх үү?"</string>
+    <string name="sms_control_yes" msgid="3663725993855816807">"Зөвшөөрөх"</string>
+    <string name="sms_control_no" msgid="625438561395534982">"Татгалзах"</string>
+    <string name="sms_short_code_confirm_message" msgid="1645436466285310855">"&lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; нь &lt;b&gt;<xliff:g id="DEST_ADDRESS">%2$s</xliff:g>&lt;/b&gt; уруу мессеж илгээх гэж байна."</string>
+    <string name="sms_short_code_details" msgid="3492025719868078457">"Энэ таны мобайл акаунтад "<font fgcolor="#ffffb060">"төлбөр гаргаж"</font>" болзошгүй."</string>
+    <string name="sms_premium_short_code_details" msgid="5523826349105123687"><font fgcolor="#ffffb060">"Энэ таны мобайл акаунтад төлбөр гаргах болно."</font></string>
+    <string name="sms_short_code_confirm_allow" msgid="4458878637111023413">"Илгээх"</string>
+    <string name="sms_short_code_confirm_deny" msgid="2927389840209170706">"Цуцлах"</string>
+    <string name="sms_short_code_remember_choice" msgid="5289538592272218136">"Миний сонголтыг санах"</string>
+    <string name="sms_short_code_remember_undo_instruction" msgid="4960944133052287484">"Та дараа энийг Тохиргоо &gt; Апп дотроос солих боломжтой"</string>
+    <string name="sms_short_code_confirm_always_allow" msgid="3241181154869493368">"Байнга зөвшөөрөх"</string>
+    <string name="sms_short_code_confirm_never_allow" msgid="446992765774269673">"Хэзээ ч зөвшөөрөхгүй"</string>
+    <string name="sim_removed_title" msgid="6227712319223226185">"SIM карт хасагдсан"</string>
+    <string name="sim_removed_message" msgid="2333164559970958645">"Зөв SIM карт хийгээд дахин асаатал та мобайл сүлжээг ашиглах боломжгүй."</string>
+    <string name="sim_done_button" msgid="827949989369963775">"Дуусгах"</string>
+    <string name="sim_added_title" msgid="3719670512889674693">"SIM карт нэмэгдсэн"</string>
+    <string name="sim_added_message" msgid="6599945301141050216">"Мобайл сүлжээнд хандах бол төхөөрөмжөө дахин асаан уу."</string>
+    <string name="sim_restart_button" msgid="4722407842815232347">"Дахин эхлүүлэх"</string>
+    <string name="time_picker_dialog_title" msgid="8349362623068819295">"Цагийн тохируулах"</string>
+    <string name="date_picker_dialog_title" msgid="5879450659453782278">"Огноо оруулах"</string>
+    <string name="date_time_set" msgid="5777075614321087758">"Тохируулах"</string>
+    <string name="date_time_done" msgid="2507683751759308828">"Дуусгах"</string>
+    <string name="perms_new_perm_prefix" msgid="8257740710754301407"><font size="12" fgcolor="#ff33b5e5">"ШИНЭ: "</font></string>
+    <string name="perms_description_app" msgid="5139836143293299417">"<xliff:g id="APP_NAME">%1$s</xliff:g> өгсөн."</string>
+    <string name="no_permissions" msgid="7283357728219338112">"Зөвшөөрөл шаардахгүй"</string>
+    <string name="perm_costs_money" msgid="4902470324142151116">"Энэ таныг төлбөрт оруулж болзошгүй"</string>
+    <string name="usb_storage_activity_title" msgid="4465055157209648641">"USB масс сан"</string>
+    <string name="usb_storage_title" msgid="5901459041398751495">"USB холбогдсон"</string>
+    <string name="usb_storage_message" product="nosdcard" msgid="3308538094316477839">"Та өөрийн компьютертээ USB-р холбогдсон байна. Хэрэв та өөрийн компьютер болон өөрийн Андройдын USB сан хооронд файл хуулах бол доорх товчинд хүрнэ үү."</string>
+    <string name="usb_storage_message" product="default" msgid="805351000446037811">"Та өөрийн компьютертээ USB-р холбогдсон байна. Хэрэв та өөрийн компьютер болон өөрийн Андройдын USB сан хооронд файл хуулах бол доорх товчинд хүрнэ үү."</string>
+    <string name="usb_storage_button_mount" msgid="1052259930369508235">"USB санг асаах"</string>
+    <string name="usb_storage_error_message" product="nosdcard" msgid="3017045217365540658">"USB санг USB масс сан болгон ашиглахад алдаа гарав."</string>
+    <string name="usb_storage_error_message" product="default" msgid="2876018512716970313">"SD картыг USB масс сан болгон ашиглахад алдаа гарав."</string>
+    <string name="usb_storage_notification_title" msgid="8175892554757216525">"USB холбогдсон"</string>
+    <string name="usb_storage_notification_message" msgid="939822783828183763">"Өөрийн компьютер- ээс/луу файл хуулах бол хүрнэ үү"</string>
+    <string name="usb_storage_stop_notification_title" msgid="2336058396663516017">"USB санг унтраах"</string>
+    <string name="usb_storage_stop_notification_message" msgid="1656852098555623822">"USB санг унтраах бол хүрнэ үү."</string>
+    <string name="usb_storage_stop_title" msgid="660129851708775853">"USB сан ашиглагдаж байна"</string>
+    <string name="usb_storage_stop_message" product="nosdcard" msgid="4264025280777219521">"USB санг унтраахаас өмнө өөрийн Андройдын SD картыг компьютерээсээ салгана(\"гаргана\") уу."</string>
+    <string name="usb_storage_stop_message" product="default" msgid="8043969782460613114">"USB санг унтраахаас өмнө өөрийн Андройдын SD картыг компьютерээсээ салгана(\"гаргана\") уу."</string>
+    <string name="usb_storage_stop_button_mount" msgid="7060218034900696029">"USB санг унтраах"</string>
+    <string name="usb_storage_stop_error_message" msgid="1970374898263063836">"USB санг унтраахад алдаа гарав. USB хостоо салгасан эсэхээ шалгаад дахин оролдоно уу."</string>
+    <string name="dlg_confirm_kill_storage_users_title" msgid="963039033470478697">"USB санг асаах"</string>
+    <string name="dlg_confirm_kill_storage_users_text" msgid="5100428757107469454">"Хэрэв та USB санг асуувал таны ашиглаж байга зарим апп зогсох ба та USB сангаа унтраатал ашиглах боломжгүй байж болзошгүй."</string>
+    <string name="dlg_error_title" msgid="7323658469626514207">"USB ажиллагаа бүтэлгүйтэв"</string>
+    <string name="dlg_ok" msgid="7376953167039865701">"Тийм"</string>
+    <string name="usb_mtp_notification_title" msgid="3699913097391550394">"Медиа төхөөрөмж болон холбогдов"</string>
+    <string name="usb_ptp_notification_title" msgid="1960817192216064833">"Камер болгон холбов"</string>
+    <string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"Суулгагч болгон холбогдсон"</string>
+    <string name="usb_accessory_notification_title" msgid="7848236974087653666">"USB төхөөрөмжид холбогдов"</string>
+    <string name="usb_notification_message" msgid="2290859399983720271">"Бусад USB сонголт хийх бол хүрнэ үү."</string>
+    <string name="extmedia_format_title" product="nosdcard" msgid="9020092196061007262">"USB санг форматлах уу?"</string>
+    <string name="extmedia_format_title" product="default" msgid="3648415921526526069">"SD картыг форматлах уу?"</string>
+    <string name="extmedia_format_message" product="nosdcard" msgid="3934016853425761078">"Таны USB санд хадгалагдсан бүх файл арилгагдана. Энэ үйлдлийг буцаах боломжгүй!"</string>
+    <string name="extmedia_format_message" product="default" msgid="14131895027543830">"Таны картан дээрх бүх дата устах болно."</string>
+    <string name="extmedia_format_button_format" msgid="4131064560127478695">"Форматлах"</string>
+    <string name="adb_active_notification_title" msgid="6729044778949189918">"USB дебаг холбогдсон"</string>
+    <string name="adb_active_notification_message" msgid="1016654627626476142">"USB дебаг хийхийг идэвхгүй болгох бол хүрнэ үү."</string>
+    <string name="select_input_method" msgid="4653387336791222978">"Оруулах аргыг сонгоно уу"</string>
+    <string name="configure_input_methods" msgid="9091652157722495116">"Оруулах аргыг тохируулах"</string>
+    <string name="use_physical_keyboard" msgid="6203112478095117625">"Бодит гар"</string>
+    <string name="hardware" msgid="7517821086888990278">"Хардвер"</string>
+    <string name="select_keyboard_layout_notification_title" msgid="1407367017263030773">"Гарын схемийг сонгох"</string>
+    <string name="select_keyboard_layout_notification_message" msgid="4465907700449257063">"Гарын схемийг сонгох бол хүрнэ үү."</string>
+    <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
+    <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
+    <string name="candidates_style" msgid="4333913089637062257"><u>"нэр дэвшигч"</u></string>
+    <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"USB санг бэлдэж байна"</string>
+    <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"SD карт бэлдэж байна"</string>
+    <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"Алдааг шалгаж байна."</string>
+    <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"Хоосон USB сан"</string>
+    <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"Хоосон SD карт"</string>
+    <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"USB сан хоосон эсвэл дэмжигдэхгүй файл системтэй."</string>
+    <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"SD карт хоосон эсвэл дэмжигдэхгүй файл систем."</string>
+    <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"Гэмтсэн USB сан"</string>
+    <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"Гэмтсэн SD карт"</string>
+    <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"USB сан гэмтсэн байна. Дахин форматлаж үзнэ үү."</string>
+    <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"SD карт гэмтсэн байна. Дахин форматлаж үзнэ үү."</string>
+    <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"USB санг санамсаргүй хасагдав"</string>
+    <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"SD карт санамсаргүй хасагдав"</string>
+    <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"Дата хохирлоос сэргийлж USB санг сугалахаасаа өмнө салгаж байна уу."</string>
+    <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"Дата хохирлоос сэргийлж SD картыг хасахаасаа өмнө салгаж байна уу."</string>
+    <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"USB санг салгаж авахад аюулгүй."</string>
+    <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"SD картыг хасахад аюулгүй"</string>
+    <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"USB санг сугалахад аюулгүй."</string>
+    <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"SD картаа салгаж авах аюулгүй."</string>
+    <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"Хасагдсан USB сан"</string>
+    <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"Сугалсан SD карт"</string>
+    <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"USB сан сугалагдав. Шинэ медиаг хийнэ үү."</string>
+    <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"SD карт хасагдав. Шинийг хийнэ үү."</string>
+    <string name="activity_list_empty" msgid="1675388330786841066">"Таарах активити олдсонгүй."</string>
+    <string name="permlab_pkgUsageStats" msgid="8787352074326748892">"компонент ашиглалтын статистикийг шинэчлэх"</string>
+    <string name="permdesc_pkgUsageStats" msgid="1106612424254277630">"Апп нь компонент хэрэглээний цуглуулагдсан статистикийг өөрчлөх боломжтой. Энгийн апп-д шаардлагагүй."</string>
+    <string name="permlab_copyProtectedData" msgid="4341036311211406692">"контент хуулах"</string>
+    <string name="permdesc_copyProtectedData" msgid="4390697124288317831">"Апп нь контентыг хуулах үндсэн контейнер үйлчилгээг дуудах боломжтой. Энгийн апп-д ашиглах боломжгүй."</string>
+    <string name="permlab_route_media_output" msgid="1642024455750414694">"Медиа гаралтыг чиглүүлэх"</string>
+    <string name="permdesc_route_media_output" msgid="4932818749547244346">"Аппликешн нь медиа гаралтыг бусад гадаад төхөөрөмжрүү чиглүүлэх боломжтой."</string>
+    <string name="permlab_access_keyguard_secure_storage" msgid="7565552237977815047">"Түлхүүр хамгаалах аюулгүй санд хандах"</string>
+    <string name="permdesc_access_keyguard_secure_storage" msgid="5866245484303285762">"Аппликешн нь хамгаалалттай аюулгүй санд хандах боломжтой."</string>
+    <string name="permlab_control_keyguard" msgid="172195184207828387">"Түлхүүр хамгаалалтын харуулах болон далдлахыг удирдах"</string>
+    <string name="permdesc_control_keyguard" msgid="3043732290518629061">"Аппликешн нь түлхүүр хамгаалагчыг удирдах боломжтой."</string>
+    <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"Өсгөх контрол дээр хоёр удаа товшино уу"</string>
+    <string name="gadget_host_error_inflating" msgid="4882004314906466162">"Виджет нэмж чадсангүй."</string>
+    <string name="ime_action_go" msgid="8320845651737369027">"Очих"</string>
+    <string name="ime_action_search" msgid="658110271822807811">"Хайх"</string>
+    <string name="ime_action_send" msgid="2316166556349314424">"Илгээх"</string>
+    <string name="ime_action_next" msgid="3138843904009813834">"Дараах"</string>
+    <string name="ime_action_done" msgid="8971516117910934605">"Дуусгах"</string>
+    <string name="ime_action_previous" msgid="1443550039250105948">"Өмнөх"</string>
+    <string name="ime_action_default" msgid="2840921885558045721">"Ажиллуулах"</string>
+    <string name="dial_number_using" msgid="5789176425167573586">"<xliff:g id="NUMBER">%s</xliff:g> ашиглан \n залгах"</string>
+    <string name="create_contact_using" msgid="4947405226788104538">"<xliff:g id="NUMBER">%s</xliff:g> дугаар ашиглан \n харилцагч үүсгэх"</string>
+    <string name="grant_credentials_permission_message_header" msgid="2106103817937859662">"Дараах нэг буюу түүнээс дээш апп таны акаунтад одоо болон дараа хандах зөвшөөрлийг хүсэж байна."</string>
+    <string name="grant_credentials_permission_message_footer" msgid="3125211343379376561">"Та энэ хүсэлтийг зөвшөөрөх үү?"</string>
+    <string name="grant_permissions_header_text" msgid="6874497408201826708">"Хандах хүсэлт"</string>
+    <string name="allow" msgid="7225948811296386551">"Зөвшөөрөх"</string>
+    <string name="deny" msgid="2081879885755434506">"Татгалзах"</string>
+    <string name="permission_request_notification_title" msgid="6486759795926237907">"Зөвшөөрөл хүсэв"</string>
+    <string name="permission_request_notification_with_subtitle" msgid="8530393139639560189">"<xliff:g id="ACCOUNT">%s</xliff:g> акаунт зөвшөөрөл \n хүссэн"</string>
+    <string name="input_method_binding_label" msgid="1283557179944992649">"Оруулах арга"</string>
+    <string name="sync_binding_label" msgid="3687969138375092423">"Синк"</string>
+    <string name="accessibility_binding_label" msgid="4148120742096474641">"Хандалт"</string>
+    <string name="wallpaper_binding_label" msgid="1240087844304687662">"Ханын зураг"</string>
+    <string name="chooser_wallpaper" msgid="7873476199295190279">"Ханын зураг солих"</string>
+    <string name="notification_listener_binding_label" msgid="2014162835481906429">"Мэдэгдэл сонсогч"</string>
+    <string name="vpn_title" msgid="19615213552042827">"VPN идэвхтэй болов"</string>
+    <string name="vpn_title_long" msgid="6400714798049252294">"VPN-г <xliff:g id="APP">%s</xliff:g> идэвхтэй болгов"</string>
+    <string name="vpn_text" msgid="3011306607126450322">"Сүлжээг удирдах бол хүрнэ үү."</string>
+    <string name="vpn_text_long" msgid="6407351006249174473">"<xliff:g id="SESSION">%s</xliff:g>-д холбогдов. Сүлжээг удирдах бол хүрнэ үү."</string>
+    <string name="vpn_lockdown_connecting" msgid="6443438964440960745">"Байнгын VPN-д холбогдож байна..."</string>
+    <string name="vpn_lockdown_connected" msgid="8202679674819213931">"Байнга VPN холбоотой"</string>
+    <string name="vpn_lockdown_error" msgid="6009249814034708175">"Байнгын VPN алдаа"</string>
+    <string name="vpn_lockdown_config" msgid="6415899150671537970">"Тохируулах бол хүрнэ үү"</string>
+    <string name="upload_file" msgid="2897957172366730416">"Файл сонгох"</string>
+    <string name="no_file_chosen" msgid="6363648562170759465">"Сонгосон файл байхгүй"</string>
+    <string name="reset" msgid="2448168080964209908">"Бүгдийг цэвэрлэх"</string>
+    <string name="submit" msgid="1602335572089911941">"Илгээх"</string>
+    <string name="car_mode_disable_notification_title" msgid="3164768212003864316">"Машины горим идэвхтэй болов"</string>
+    <string name="car_mode_disable_notification_message" msgid="8035230537563503262">"Машины горимоос гарах бол хүрнэ үү."</string>
+    <string name="tethered_notification_title" msgid="3146694234398202601">"Модем болгох эсвэл идэвхтэй цэг болгох"</string>
+    <string name="tethered_notification_message" msgid="6857031760103062982">"Тохируулах бол хүрнэ үү."</string>
+    <string name="back_button_label" msgid="2300470004503343439">"Буцах"</string>
+    <string name="next_button_label" msgid="1080555104677992408">"Дараах"</string>
+    <string name="skip_button_label" msgid="1275362299471631819">"Алгасах"</string>
+    <string name="throttle_warning_notification_title" msgid="4890894267454867276">"Мобайл дата хэрэглээ өндөр"</string>
+    <string name="throttle_warning_notification_message" msgid="3340822228599337743">"Мобайл дата хэрэглээний талаар дэлгэрэнгүй үзэх бол хүрнэ үү"</string>
+    <string name="throttled_notification_title" msgid="6269541897729781332">"Мобайл дата хязгаар хэтрэв"</string>
+    <string name="throttled_notification_message" msgid="5443457321354907181">"Мобайл дата хэрэглээний талаар дэлгэрэнгүй үзэх бол хүрнэ үү"</string>
+    <string name="no_matches" msgid="8129421908915840737">"Илэрц алга"</string>
+    <string name="find_on_page" msgid="1946799233822820384">"Хуудаснаас олох"</string>
+  <plurals name="matches_found">
+    <item quantity="one" msgid="8167147081136579439">"1 утга"</item>
+    <item quantity="other" msgid="4641872797067609177">"<xliff:g id="TOTAL">%d</xliff:g>-н <xliff:g id="INDEX">%d</xliff:g>"</item>
+  </plurals>
+    <string name="action_mode_done" msgid="7217581640461922289">"Дуусгах"</string>
+    <string name="progress_unmounting" product="nosdcard" msgid="3923810448507612746">"USB санг салгаж байна…"</string>
+    <string name="progress_unmounting" product="default" msgid="1327894998409537190">"SD картыг салгаж байна…"</string>
+    <string name="progress_erasing" product="nosdcard" msgid="4521573321524340058">"USB санг арилгаж байна…"</string>
+    <string name="progress_erasing" product="default" msgid="6596988875507043042">"SD картыг цэвэрлэж байна…"</string>
+    <string name="format_error" product="nosdcard" msgid="6299769563624776948">"USB санг арилгаж чадсангүй."</string>
+    <string name="format_error" product="default" msgid="7315248696644510935">"SD картыг арилгаж чадсангүй."</string>
+    <string name="media_bad_removal" msgid="7960864061016603281">"SD картыг салгалгүйгээр хассан байна."</string>
+    <string name="media_checking" product="nosdcard" msgid="418188720009569693">"USB санг одоо шалгаж байна."</string>
+    <string name="media_checking" product="default" msgid="7334762503904827481">"SD картыг одоо шалгаж байна."</string>
+    <string name="media_removed" msgid="7001526905057952097">"SD картыг сугалсан байна."</string>
+    <string name="media_shared" product="nosdcard" msgid="5830814349250834225">"USB санг одоо компьютерээс ашиглаж байна."</string>
+    <string name="media_shared" product="default" msgid="5706130568133540435">"USB санг одоо компьютерээс ашиглаж байна."</string>
+    <string name="media_unknown_state" msgid="729192782197290385">"Гадаад медиа үл мэдэгдэх статустай байна."</string>
+    <string name="share" msgid="1778686618230011964">"Хуваалцах"</string>
+    <string name="find" msgid="4808270900322985960">"Олох"</string>
+    <string name="websearch" msgid="4337157977400211589">"Веб хайлт"</string>
+    <string name="find_next" msgid="5742124618942193978">"Дараагийнхыг хайх"</string>
+    <string name="find_previous" msgid="2196723669388360506">"Өмнөхөөс олох"</string>
+    <string name="gpsNotifTicker" msgid="5622683912616496172">"<xliff:g id="NAME">%s</xliff:g>-н байршлын хүсэлт"</string>
+    <string name="gpsNotifTitle" msgid="5446858717157416839">"Байршлын хүсэлт"</string>
+    <string name="gpsNotifMessage" msgid="1374718023224000702">"<xliff:g id="NAME">%1$s</xliff:g> (<xliff:g id="SERVICE">%2$s</xliff:g>) хүсэлт илгээсэн"</string>
+    <string name="gpsVerifYes" msgid="2346566072867213563">"Тийм"</string>
+    <string name="gpsVerifNo" msgid="1146564937346454865">"Үгүй"</string>
+    <string name="sync_too_many_deletes" msgid="5296321850662746890">"Устгах хязгаар хэтрэв"</string>
+    <string name="sync_too_many_deletes_desc" msgid="496551671008694245">"<xliff:g id="TYPE_OF_SYNC">%2$s</xliff:g>-р <xliff:g id="ACCOUNT_NAME">%3$s</xliff:g> акаунтын <xliff:g id="NUMBER_OF_DELETED_ITEMS">%1$d</xliff:g> зүйл устсан . Та юу хиймээр байна?"</string>
+    <string name="sync_really_delete" msgid="2572600103122596243">"Устгах"</string>
+    <string name="sync_undo_deletes" msgid="2941317360600338602">"Устгасныг буцаах"</string>
+    <string name="sync_do_nothing" msgid="3743764740430821845">"Одоо юу ч хийхгүй"</string>
+    <string name="choose_account_label" msgid="5655203089746423927">"Акаунт сонгох"</string>
+    <string name="add_account_label" msgid="2935267344849993553">"Акаунт нэмэх"</string>
+    <string name="add_account_button_label" msgid="3611982894853435874">"Аккаунт нэмэх"</string>
+    <string name="number_picker_increment_button" msgid="2412072272832284313">"Өсөх"</string>
+    <string name="number_picker_decrement_button" msgid="476050778386779067">"Бууруулах"</string>
+    <string name="number_picker_increment_scroll_mode" msgid="3073101067441638428">"<xliff:g id="VALUE">%s</xliff:g> хүрээд барина уу."</string>
+    <string name="number_picker_increment_scroll_action" msgid="9101473045891835490">"Өсгөх бол дээшээ бууруулах бол доошоо гулсуулна уу."</string>
+    <string name="time_picker_increment_minute_button" msgid="8865885114028614321">"Минут өсгөх"</string>
+    <string name="time_picker_decrement_minute_button" msgid="6246834937080684791">"Минутыг бууруулах"</string>
+    <string name="time_picker_increment_hour_button" msgid="3652056055810223139">"Цаг өсгөх"</string>
+    <string name="time_picker_decrement_hour_button" msgid="1377479863429214792">"Цаг бууруулах"</string>
+    <string name="time_picker_increment_set_pm_button" msgid="4147590696151230863">"PM тохируулах"</string>
+    <string name="time_picker_decrement_set_am_button" msgid="8302140353539486752">"AM тохируулах"</string>
+    <string name="date_picker_increment_month_button" msgid="5369998479067934110">"Сар өсгөх"</string>
+    <string name="date_picker_decrement_month_button" msgid="1832698995541726019">"Сарыг бууруулах"</string>
+    <string name="date_picker_increment_day_button" msgid="7130465412308173903">"Өдөр өсгөх"</string>
+    <string name="date_picker_decrement_day_button" msgid="4131881521818750031">"Өдрийг бууруулах"</string>
+    <string name="date_picker_increment_year_button" msgid="6318697384310808899">"Жилийг өсгөх"</string>
+    <string name="date_picker_decrement_year_button" msgid="4482021813491121717">"Жил бууруулах"</string>
+    <string name="keyboardview_keycode_alt" msgid="4856868820040051939">"Alt"</string>
+    <string name="keyboardview_keycode_cancel" msgid="1203984017245783244">"Цуцлах"</string>
+    <string name="keyboardview_keycode_delete" msgid="3337914833206635744">"Устгах"</string>
+    <string name="keyboardview_keycode_done" msgid="1992571118466679775">"Дуусгах"</string>
+    <string name="keyboardview_keycode_mode_change" msgid="4547387741906537519">"Горим өөрчлөх"</string>
+    <string name="keyboardview_keycode_shift" msgid="2270748814315147690">"Шифт"</string>
+    <string name="keyboardview_keycode_enter" msgid="2985864015076059467">"Оруулах"</string>
+    <string name="activitychooserview_choose_application" msgid="2125168057199941199">"Апп сонгох"</string>
+    <string name="shareactionprovider_share_with" msgid="806688056141131819">"Хуваалцах"</string>
+    <string name="shareactionprovider_share_with_application" msgid="5627411384638389738">"<xliff:g id="APPLICATION_NAME">%s</xliff:g>-тай хуваалцана уу"</string>
+    <string name="content_description_sliding_handle" msgid="415975056159262248">"Бариулыг гулсуулна. Хүрээд хүлээнэ."</string>
+    <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>-г гулсуулах."</string>
+    <string name="description_direction_down" msgid="5087739728639014595">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> хийх бол доош гулсуулах."</string>
+    <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> хийх зүүнлүү гулсуулах."</string>
+    <string name="description_direction_right" msgid="8034433242579600980">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> хийх бол баруунлуу гулсуулах."</string>
+    <string name="description_target_unlock" msgid="2228524900439801453">"Тайлах"</string>
+    <string name="description_target_camera" msgid="969071997552486814">"Камер"</string>
+    <string name="description_target_silent" msgid="893551287746522182">"Чимээгүй"</string>
+    <string name="description_target_soundon" msgid="30052466675500172">"Дуунууд идэвхтэй"</string>
+    <string name="description_target_search" msgid="3091587249776033139">"Хайх"</string>
+    <string name="description_target_unlock_tablet" msgid="3833195335629795055">"Түгжээг тайлах бол татна уу"</string>
+    <string name="keyboard_headset_required_to_hear_password" msgid="7011927352267668657">"Нууц үгний дуудлагыг сонсох бол чихэвчийг залгана уу."</string>
+    <string name="keyboard_password_character_no_headset" msgid="2859873770886153678">"Цэг."</string>
+    <string name="action_bar_home_description" msgid="5293600496601490216">"Нүүр хуудасруу шилжих"</string>
+    <string name="action_bar_up_description" msgid="2237496562952152589">"Дээш шилжих"</string>
+    <string name="action_menu_overflow_description" msgid="2295659037509008453">"Нэмэлт сонголтууд"</string>
+    <string name="action_bar_home_description_format" msgid="7965984360903693903">"%1$s, %2$s"</string>
+    <string name="action_bar_home_subtitle_description_format" msgid="6985546530471780727">"%1$s, %2$s, %3$s"</string>
+    <string name="storage_internal" msgid="4891916833657929263">"Дотоод сан"</string>
+    <string name="storage_sd_card" msgid="3282948861378286745">"SD карт"</string>
+    <string name="storage_usb" msgid="3017954059538517278">"USB сан"</string>
+    <string name="extract_edit_menu_button" msgid="8940478730496610137">"Засах"</string>
+    <string name="data_usage_warning_title" msgid="1955638862122232342">"Дата хэрэглээний анхааруулга"</string>
+    <string name="data_usage_warning_body" msgid="2814673551471969954">"Ашиглалт болон тохиргоог харах бол хүрнэ үү."</string>
+    <string name="data_usage_3g_limit_title" msgid="7093334419518706686">"2G-3G дата идэвхгүй болов"</string>
+    <string name="data_usage_4g_limit_title" msgid="7636489436819470761">"4G дата идэвхгүй байна"</string>
+    <string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"Мобайл дата идэвхгүй"</string>
+    <string name="data_usage_wifi_limit_title" msgid="8992154736441284865">"Wi-Fi дата идэвхгүй"</string>
+    <string name="data_usage_limit_body" msgid="3317964706973601386">"Идэвхжүүлэх бол хүрнэ үү."</string>
+    <string name="data_usage_3g_limit_snoozed_title" msgid="7026739121138005231">"2G-3G дата хязгаар хэтрэв"</string>
+    <string name="data_usage_4g_limit_snoozed_title" msgid="1106562779311209039">"4G дата хязгаар хэтрэв"</string>
+    <string name="data_usage_mobile_limit_snoozed_title" msgid="279240572165412168">"Мобайл дата хязгаар хэтрэв"</string>
+    <string name="data_usage_wifi_limit_snoozed_title" msgid="8743856006384825974">"Wi-Fi дата хязгаар хэтрэв"</string>
+    <string name="data_usage_limit_snoozed_body" msgid="7035490278298441767">"<xliff:g id="SIZE">%s</xliff:g> заасан хязгаарыг давав."</string>
+    <string name="data_usage_restricted_title" msgid="5965157361036321914">"Арын дата хязгаарлагдсан"</string>
+    <string name="data_usage_restricted_body" msgid="6741521330997452990">"Хязгаарлалтыг хасах бол хүрнэ үү."</string>
+    <string name="ssl_certificate" msgid="6510040486049237639">"Аюулгүй сертификат"</string>
+    <string name="ssl_certificate_is_valid" msgid="6825263250774569373">"Сертификат хүчинтэй."</string>
+    <string name="issued_to" msgid="454239480274921032">"Гаргуулсан:"</string>
+    <string name="common_name" msgid="2233209299434172646">"Ерөнхий нэр:"</string>
+    <string name="org_name" msgid="6973561190762085236">"Байгууллага:"</string>
+    <string name="org_unit" msgid="7265981890422070383">"Байгууллагын нэгж:"</string>
+    <string name="issued_by" msgid="2647584988057481566">"Гаргасан:"</string>
+    <string name="validity_period" msgid="8818886137545983110">"Хүчинтэй байх:"</string>
+    <string name="issued_on" msgid="5895017404361397232">"Гаргасан:"</string>
+    <string name="expires_on" msgid="3676242949915959821">"Хүртэл хүчинтэй:"</string>
+    <string name="serial_number" msgid="758814067660862493">"Сериал дугаар:"</string>
+    <string name="fingerprints" msgid="4516019619850763049">"Хурууны хээ:"</string>
+    <string name="sha256_fingerprint" msgid="4391271286477279263">"SHA-256 хурууны хээ:"</string>
+    <string name="sha1_fingerprint" msgid="7930330235269404581">"SHA-1 хурууны хээ:"</string>
+    <string name="activity_chooser_view_see_all" msgid="4292569383976636200">"Бүгдийг харах"</string>
+    <string name="activity_chooser_view_dialog_title_default" msgid="4710013864974040615">"Активити сонгох"</string>
+    <string name="share_action_provider_share_with" msgid="5247684435979149216">"Хуваалцах"</string>
+    <string name="status_bar_device_locked" msgid="3092703448690669768">"Төхөөрөмж түгжигдсэн."</string>
+    <string name="list_delimeter" msgid="3975117572185494152">", "</string>
+    <string name="sending" msgid="3245653681008218030">"Илгээж байна ..."</string>
+    <string name="launchBrowserDefault" msgid="2057951947297614725">"Хөтөч ажиллуулах уу?"</string>
+    <string name="SetupCallDefault" msgid="5834948469253758575">"Дуудлагыг зөвшөөрөх үү?"</string>
+    <string name="activity_resolver_use_always" msgid="8017770747801494933">"Байнга"</string>
+    <string name="activity_resolver_use_once" msgid="2404644797149173758">"Нэг удаа"</string>
+    <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"Таблет"</string>
+    <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"Утас"</string>
+    <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"Чихэвч"</string>
+    <string name="default_audio_route_name_dock_speakers" msgid="6240602982276591864">"Чанга яригчийг суулгах"</string>
+    <string name="default_media_route_name_hdmi" msgid="2450970399023478055">"HDMI"</string>
+    <string name="default_audio_route_category_name" msgid="3722811174003886946">"Систем"</string>
+    <string name="bluetooth_a2dp_audio_route_name" msgid="8575624030406771015">"Блютүүт аудио"</string>
+    <string name="wireless_display_route_description" msgid="9070346425023979651">"Утасгүй дэлгэц"</string>
+    <string name="media_route_chooser_grouping_done" msgid="7966438307723317169">"Дууссан"</string>
+    <string name="media_route_button_content_description" msgid="5758553567065145276">"Медиа гаралт"</string>
+    <string name="media_route_status_scanning" msgid="7279908761758293783">"Скан хийж байна..."</string>
+    <string name="media_route_status_connecting" msgid="6422571716007825440">"Холбогдож байна..."</string>
+    <string name="media_route_status_available" msgid="6983258067194649391">"Боломжтой"</string>
+    <string name="media_route_status_not_available" msgid="6739899962681886401">"Боломжгүй"</string>
+    <string name="media_route_status_in_use" msgid="4533786031090198063">"Ашиглаж байгаа"</string>
+    <string name="display_manager_built_in_display_name" msgid="2583134294292563941">"Үндсэн дэлгэц"</string>
+    <string name="display_manager_hdmi_display_name" msgid="1555264559227470109">"HDMI Дэлгэц"</string>
+    <string name="display_manager_overlay_display_name" msgid="5142365982271620716">"Давхарга #<xliff:g id="ID">%1$d</xliff:g>"</string>
+    <string name="display_manager_overlay_display_title" msgid="652124517672257172">"<xliff:g id="NAME">%1$s</xliff:g>: <xliff:g id="WIDTH">%2$d</xliff:g>x<xliff:g id="HEIGHT">%3$d</xliff:g>, <xliff:g id="DPI">%4$d</xliff:g> dpi"</string>
+    <string name="display_manager_overlay_display_secure_suffix" msgid="6022119702628572080">", найдвартай"</string>
+    <string name="wifi_display_notification_title" msgid="2223050649240326557">"Утасгүй дэлгэц холбогдов"</string>
+    <string name="wifi_display_notification_message" msgid="4498802012464170685">"Энэ дэлгэц өөр төхөөрөмжийг харуулж байна"</string>
+    <string name="wifi_display_notification_disconnect" msgid="6183754463561153372">"Салгах"</string>
+    <string name="kg_emergency_call_label" msgid="684946192523830531">"Яаралтай дуудлага"</string>
+    <string name="kg_forgot_pattern_button_text" msgid="8852021467868220608">"Хээг мартсан"</string>
+    <string name="kg_wrong_pattern" msgid="1850806070801358830">"Буруу хээ"</string>
+    <string name="kg_wrong_password" msgid="2333281762128113157">"Нууц үг буруу"</string>
+    <string name="kg_wrong_pin" msgid="1131306510833563801">"PIN буруу"</string>
+    <string name="kg_too_many_failed_attempts_countdown" msgid="6358110221603297548">"<xliff:g id="NUMBER">%1$d</xliff:g> секундын дараа дахин оролдоно уу."</string>
+    <string name="kg_pattern_instructions" msgid="398978611683075868">"Хээг зурах"</string>
+    <string name="kg_sim_pin_instructions" msgid="2319508550934557331">"SIM PIN оруулна уу"</string>
+    <string name="kg_pin_instructions" msgid="2377242233495111557">"PIN оруулна уу"</string>
+    <string name="kg_password_instructions" msgid="5753646556186936819">"Нууц үгээ оруулна уу"</string>
+    <string name="kg_puk_enter_puk_hint" msgid="453227143861735537">"SIM идэвхгүй байна. Үргэлжлүүлэх бол PUK кодыг оруулна уу. Дэлгэрэнгүй мэдээллийг оператороос асууна ууу"</string>
+    <string name="kg_puk_enter_pin_hint" msgid="7871604527429602024">"Хүссэн PIN кодоо оруулна уу"</string>
+    <string name="kg_enter_confirm_pin_hint" msgid="325676184762529976">"Хүссэн PIN кодоо дахин оруулна уу"</string>
+    <string name="kg_sim_unlock_progress_dialog_message" msgid="8950398016976865762">"SIM картны түгжээг гаргаж байна…"</string>
+    <string name="kg_password_wrong_pin_code" msgid="1139324887413846912">"Буруу PIN код."</string>
+    <string name="kg_invalid_sim_pin_hint" msgid="8795159358110620001">"4-8 тооноос бүтэх PIN-г бичнэ үү."</string>
+    <string name="kg_invalid_sim_puk_hint" msgid="7553388325654369575">"PUK код 8-с цөөнгүй тооноос бүтнэ."</string>
+    <string name="kg_invalid_puk" msgid="3638289409676051243">"Зөв PUK кодыг дахин оруулна уу. Давтан оролдвол SIM нь бүрмөсөн идэвхгүй болгоно."</string>
+    <string name="kg_invalid_confirm_pin_hint" product="default" msgid="7003469261464593516">"PIN кодууд таарахгүй байна"</string>
+    <string name="kg_login_too_many_attempts" msgid="6486842094005698475">"Хээ оруулах оролдлого хэт олон"</string>
+    <string name="kg_login_instructions" msgid="1100551261265506448">"Түгжээг тайлах бол Google акаунтаараа нэвтэрнэ үү."</string>
+    <string name="kg_login_username_hint" msgid="5718534272070920364">"Хэрэглэгчийн нэр (имэйл)"</string>
+    <string name="kg_login_password_hint" msgid="9057289103827298549">"Нууц үг"</string>
+    <string name="kg_login_submit_button" msgid="5355904582674054702">"Нэвтрэх"</string>
+    <string name="kg_login_invalid_input" msgid="5754664119319872197">"Хэрэглэгчийн нэр эсвэл нууц үг буруу."</string>
+    <string name="kg_login_account_recovery_hint" msgid="5690709132841752974">"Хэрэглэгчийн нэр нууц үгээ мартсан уу?\n"<b>"google.com/accounts/recovery"</b>"-д зочилно уу."</string>
+    <string name="kg_login_checking_password" msgid="1052685197710252395">"Акаунт шалгаж байна…"</string>
+    <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="8276745642049502550">"Та PIN кодоо <xliff:g id="NUMBER_0">%d</xliff:g> удаа буруу бичив. \n\n<xliff:g id="NUMBER_1">%d</xliff:g> секундын дараа дахин оролдоно уу."</string>
+    <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="7813713389422226531">"Та PIN кодоо <xliff:g id="NUMBER_0">%d</xliff:g> удаа буруу бичив. \n\n<xliff:g id="NUMBER_1">%d</xliff:g> секундын дараа дахин оролдоно уу."</string>
+    <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="74089475965050805">"Та тайлах хээг <xliff:g id="NUMBER_0">%d</xliff:g> удаа буруу зурлаа. \n\n<xliff:g id="NUMBER_1">%d</xliff:g> секундын дараа дахин оролдоно уу."</string>
+    <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="1575557200627128949">"Та таблетыг тайлах гэж <xliff:g id="NUMBER_0">%d</xliff:g> удаа буруу оролдлоо. <xliff:g id="NUMBER_1">%d</xliff:g> удаа дахин буруу оролдвол таблет үйлдвэрийн үндсэн утгаараа тохируулагдах ба хэрэглэгчийн дата бүхэлдээ устана."</string>
+    <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="4051015943038199910">"Та утсыг тайлах гэж <xliff:g id="NUMBER_0">%d</xliff:g> удаа буруу оролдлоо. <xliff:g id="NUMBER_1">%d</xliff:g> удаа дахин буруу оролдвол утас үйлдвэрийн үндсэн утгаараа тохируулагдах ба хэрэглэгчийн дата бүхэлдээ устана."</string>
+    <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="2072996269148483637">"Та таблетыг тайлах гэж <xliff:g id="NUMBER">%d</xliff:g> удаа буруу оролдлоо. Таблет одоо үйлдвэрийн үндсэн утгаараа тохируулагдах болно."</string>
+    <string name="kg_failed_attempts_now_wiping" product="default" msgid="4817627474419471518">"Та утсыг тайлах гэж <xliff:g id="NUMBER">%d</xliff:g> удаа буруу оролдлоо. Утас одоо үйлдвэрийн үндсэн утгаараа тохируулагдах болно."</string>
+    <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="3253575572118914370">"Та тайлах хээг <xliff:g id="NUMBER_0">%d</xliff:g> удаа буруу зурлаа. <xliff:g id="NUMBER_1">%d</xliff:g> удаа дахин буруу оруулбал, та таблетаа тайлахын тулд имэйл акаунт шаардлагатай болно.\n\n <xliff:g id="NUMBER_2">%d</xliff:g> секундын дараа дахин оролдоно уу."</string>
+    <string name="kg_failed_attempts_almost_at_login" product="default" msgid="1437638152015574839">"Та тайлах хээг <xliff:g id="NUMBER_0">%d</xliff:g> удаа буруу зурлаа. <xliff:g id="NUMBER_1">%d</xliff:g> удаа дахин буруу оруулбал, та утсаа тайлахын тулд имэйл акаунтаа ашиглах шаардлагатай болно.\n\n <xliff:g id="NUMBER_2">%d</xliff:g> секундын дараа дахин оролдоно уу."</string>
+    <string name="kg_text_message_separator" product="default" msgid="4160700433287233771">" — "</string>
+    <string name="kg_reordering_delete_drop_target_text" msgid="7899202978204438708">"Устгах"</string>
+    <string name="safe_media_volume_warning" product="default" msgid="7324161939475478066">"Дууг санал болгосон дээд төвшинөөс өсгөх үү. \n Өндөр дуугаар урт хугацаанд сонсох нь таны сонсголд хортой."</string>
+    <string name="continue_to_enable_accessibility" msgid="1626427372316070258">"Хялбар горимыг идэвхжүүлэх бол хоёр хуруугаараа доошлуулаад хүлээнэ үү."</string>
+    <string name="accessibility_enabled" msgid="1381972048564547685">"Хялбаршуулсан горим идэвхжив."</string>
+    <string name="enable_accessibility_canceled" msgid="3833923257966635673">"Хандалт цуцлагдсан."</string>
+    <string name="user_switched" msgid="3768006783166984410">"Одоогийн хэрэглэгч <xliff:g id="NAME">%1$s</xliff:g>."</string>
+    <string name="owner_name" msgid="2716755460376028154">"Эзэмшигч"</string>
+    <string name="error_message_title" msgid="4510373083082500195">"Алдаа"</string>
+    <string name="app_no_restricted_accounts" msgid="5739463249673727736">"Энэ аппликешн хязгаарлагдсан профайлын акаунтыг дэмжихгүй."</string>
+    <string name="app_not_found" msgid="3429141853498927379">"Энэ ажиллагааг зохицуулах аппликешн олдсонгүй."</string>
+    <string name="revoke" msgid="5404479185228271586">"Цуцлах"</string>
+    <string name="mediaSize_iso_a0" msgid="7875427489420821793">"ISO A0"</string>
+    <string name="mediaSize_iso_a1" msgid="3760734499050875356">"ISO A1"</string>
+    <string name="mediaSize_iso_a2" msgid="5973266378020144382">"ISO A2"</string>
+    <string name="mediaSize_iso_a3" msgid="1373407105687300884">"ISO A3"</string>
+    <string name="mediaSize_iso_a4" msgid="6689772807982597254">"ISO A4"</string>
+    <string name="mediaSize_iso_a5" msgid="5353549652015741040">"ISO A5"</string>
+    <string name="mediaSize_iso_a6" msgid="8585038048674911907">"ISO A6"</string>
+    <string name="mediaSize_iso_a7" msgid="6641836716963839119">"ISO A7"</string>
+    <string name="mediaSize_iso_a8" msgid="7571139437465693355">"ISO A8"</string>
+    <string name="mediaSize_iso_a9" msgid="1378455891957115079">"ISO A9"</string>
+    <string name="mediaSize_iso_a10" msgid="2480747457429475344">"ISO A10"</string>
+    <string name="mediaSize_iso_b0" msgid="3965935097661108039">"ISO B0"</string>
+    <string name="mediaSize_iso_b1" msgid="2505753285010115437">"ISO B1"</string>
+    <string name="mediaSize_iso_b2" msgid="8763874709859458453">"ISO B2"</string>
+    <string name="mediaSize_iso_b3" msgid="4210506688191764076">"ISO B3"</string>
+    <string name="mediaSize_iso_b4" msgid="5749404165888526034">"ISO B4"</string>
+    <string name="mediaSize_iso_b5" msgid="7640627414621904733">"ISO B5"</string>
+    <string name="mediaSize_iso_b6" msgid="7342988864712748544">"ISO B6"</string>
+    <string name="mediaSize_iso_b7" msgid="5069844065235382429">"ISO B7"</string>
+    <string name="mediaSize_iso_b8" msgid="7316818922278779774">"ISO B8"</string>
+    <string name="mediaSize_iso_b9" msgid="5414727094026532341">"ISO B9"</string>
+    <string name="mediaSize_iso_b10" msgid="5251253731832048185">"ISO B10"</string>
+    <string name="mediaSize_iso_c0" msgid="4003138342671964217">"ISO C0"</string>
+    <string name="mediaSize_iso_c1" msgid="1935188063393553008">"ISO C1"</string>
+    <string name="mediaSize_iso_c2" msgid="3197307969712069904">"ISO C2"</string>
+    <string name="mediaSize_iso_c3" msgid="4335826087321913508">"ISO C3"</string>
+    <string name="mediaSize_iso_c4" msgid="3745639598281015005">"ISO C4"</string>
+    <string name="mediaSize_iso_c5" msgid="8269457765822791013">"ISO C5"</string>
+    <string name="mediaSize_iso_c6" msgid="566666105260346930">"ISO C6"</string>
+    <string name="mediaSize_iso_c7" msgid="8678413180782608498">"ISO C7"</string>
+    <string name="mediaSize_iso_c8" msgid="8392376206627041730">"ISO C8"</string>
+    <string name="mediaSize_iso_c9" msgid="9191613372324845405">"ISO C9"</string>
+    <string name="mediaSize_iso_c10" msgid="7327709699184920822">"ISO C10"</string>
+    <string name="mediaSize_na_letter" msgid="4191805615829472953">"Letter"</string>
+    <string name="mediaSize_na_gvrnmt_letter" msgid="7853382192649405507">"Government Letter"</string>
+    <string name="mediaSize_na_legal" msgid="6697982988283823150">"Legal"</string>
+    <string name="mediaSize_na_junior_legal" msgid="3727743969902758948">"Junior Legal"</string>
+    <string name="mediaSize_na_ledger" msgid="281871464896601236">"Ledger"</string>
+    <string name="mediaSize_na_tabloid" msgid="5775966416333578127">"Tabloid"</string>
+    <string name="write_fail_reason_cancelled" msgid="7091258378121627624">"Цуцлагдсан"</string>
+    <string name="write_fail_reason_cannot_write" msgid="8132505417935337724">"Контентыг бичих явцад алдаа гарсан"</string>
+    <string name="restr_pin_enter_pin" msgid="3395953421368476103">"PIN оруулна уу"</string>
+    <string name="restr_pin_enter_old_pin" msgid="1462206225512910757">"Одоогийн PIN"</string>
+    <string name="restr_pin_enter_new_pin" msgid="5959606691619959184">"Шинэ PIN"</string>
+    <string name="restr_pin_confirm_pin" msgid="8501523829633146239">"Шинэ PIN-г баталгаажуулах"</string>
+    <string name="restr_pin_create_pin" msgid="8017600000263450337">"Өөрчлөлтийг хязгаарлахад зориулан PIN үүсгэх"</string>
+    <string name="restr_pin_error_doesnt_match" msgid="2224214190906994548">"PIN таарахгүй байна. Дахин оролдоно уу."</string>
+    <string name="restr_pin_error_too_short" msgid="8173982756265777792">"PIN хэт богино байна. Хамгийн багадаа 4 цифртэй байх ёстой."</string>
+  <plurals name="restr_pin_countdown">
+    <item quantity="one" msgid="4835639969503729874">"Буруу PIN. 1 секундын дараа дахин оролдоно уу."</item>
+    <item quantity="other" msgid="8030607343223287654">"Буруу PIN. <xliff:g id="COUNT">%d</xliff:g> секундын дараа дахин оролдоно уу."</item>
+  </plurals>
+    <string name="transient_navigation_confirmation" msgid="4907844043611123426">"Баганыг харуулахын тулд дэлгэцийн ирмэгийг шудрана уу"</string>
+    <string name="transient_navigation_confirmation_long" msgid="8061685920508086697">"Системийн баганыг гаргахын тулд дэлгэцийн ирмэгээс шудрана уу"</string>
+</resources>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index add353d..aad5797 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -1323,7 +1323,7 @@
     <string name="submit" msgid="1602335572089911941">"Trimiteţi"</string>
     <string name="car_mode_disable_notification_title" msgid="3164768212003864316">"Mod Maşină activat"</string>
     <string name="car_mode_disable_notification_message" msgid="8035230537563503262">"Atingeţi pentru a ieşi din modul Maşină."</string>
-    <string name="tethered_notification_title" msgid="3146694234398202601">"Tethering sau hotspot active"</string>
+    <string name="tethered_notification_title" msgid="3146694234398202601">"Tethering sau hotspot activ"</string>
     <string name="tethered_notification_message" msgid="6857031760103062982">"Atingeţi pentru a configura."</string>
     <string name="back_button_label" msgid="2300470004503343439">"Înapoi"</string>
     <string name="next_button_label" msgid="1080555104677992408">"Înainte"</string>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index b4cf861..58f8723 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -160,9 +160,9 @@
     <string name="global_action_toggle_silent_mode" msgid="8219525344246810925">"Mtindo wa kimya"</string>
     <string name="global_action_silent_mode_on_status" msgid="3289841937003758806">"Sauti Imezimwa"</string>
     <string name="global_action_silent_mode_off_status" msgid="1506046579177066419">"Sauti imewashwa"</string>
-    <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"gumzo ya ndege"</string>
+    <string name="global_actions_toggle_airplane_mode" msgid="5884330306926307456">"Modi ya ndege"</string>
     <string name="global_actions_airplane_mode_on_status" msgid="2719557982608919750">"Hali ya ndege IMEWASHWA"</string>
-    <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"gumzo ya ndege IMEZIMWA"</string>
+    <string name="global_actions_airplane_mode_off_status" msgid="5075070442854490296">"Modi ya ndege IMEZIMWA"</string>
     <string name="status_bar_notification_info_overflow" msgid="5301981741705354993">"999+"</string>
     <string name="safeMode" msgid="2788228061547930246">"Mtindo salama"</string>
     <string name="android_system_label" msgid="6577375335728551336">"Mfumo wa Android"</string>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 50ea08b..f8cffa7 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -2379,7 +2379,13 @@
              method should be considered an option as the default. -->
         <attr name="isDefault" format="boolean" />
         <!-- Set to true if this input method supports ways to switch to
-             a next input method (e.g. a globe key.). -->
+             a next input method (e.g. a globe key.). When this is true and
+             InputMethodManager#shouldOfferSwitchingToNextInputMethod() returns true,
+             the IME has to offer ways to to invoke InputMethodManager#switchToNextInputMethod()
+             accordingly.
+             <p> Note that the system determines the most appropriate next input method
+             and subtype in order to provide the consistent user experience in switching
+             between IMEs and subtypes. -->
         <attr name="supportsSwitchingToNextInputMethod" format="boolean" />
     </declare-styleable>
 
@@ -2602,6 +2608,9 @@
         <!-- Short description of the functionality the service implements. This attribute
              is mandatory.-->
         <attr name="description" />
+        <!-- Whether the device must be unlocked before routing data to this service.
+             The default is false.-->
+        <attr name="requireDeviceUnlock" format="boolean"/>
     </declare-styleable>
 
     <!-- Use <code>offhost-apdu-service</code> as the root tag of the XML resource that
@@ -2622,7 +2631,8 @@
         <!-- Short description of what the AID group implements. This attribute is mandatory.-->
         <attr name="description" />
         <!-- The category attribute will be used by the Android platform to present
-             multiple applications that register AIDs in the same category uniformly.
+             multiple applications that register ISO 7816 Application IDs (AIDs) in the
+             same category uniformly.
              Additionally, when a category is specified, Android will ensure that either
              all AIDs in this group are routed to this application, or none at all.
              This attribute is optional.-->
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 5d4383f..d4a408d 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -820,6 +820,10 @@
     <!-- IP address of the dns server to use if nobody else suggests one -->
     <string name="config_default_dns_server" translatable="false">8.8.8.8</string>
 
+    <!-- The default mobile provisioning apn. Empty by default, maybe overridden by
+         an mcc/mnc specific config.xml -->
+    <string name="mobile_provisioning_apn" translatable="false"></string>
+
     <!-- The default mobile provisioning url. Empty by default, maybe overridden by
          an mcc/mnc specific config.xml -->
     <string name="mobile_provisioning_url" translatable="false"></string>
@@ -1207,4 +1211,15 @@
     <!-- Default Gravity setting for the system Toast view. Equivalent to: Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM -->
     <integer name="config_toastDefaultGravity">0x00000051</integer>
 
+    <!-- set to false if we need to show user confirmation
+         when alpha identifier is not provided by the UICC -->
+    <bool name="config_stkNoAlphaUsrCnf">true</bool>
+
+    <!-- Don't use roaming icon for considered operators.
+         Can use mcc or mcc+mnc as item. For example, 302 or 21407.
+         If operators, 21404 and 21407, make roaming agreements, user of 21404 should not see
+         the roaming icon as using 21407 network.
+         To do this, add 21407 item to values-mcc214-mnc04/config.xml -->
+    <string-array translatable="false" name="config_operatorConsideredNonRoaming">
+    </string-array>
 </resources>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index f2ec04f..696e782 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -2073,5 +2073,6 @@
   <public type="attr" name="customRoots" />
   <public type="attr" name="autoMirrored" />
   <public type="attr" name="supportsSwitchingToNextInputMethod" />
+  <public type="attr" name="requireDeviceUnlock" />
 
 </resources>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index ead46c2..4b32e2b 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -984,12 +984,13 @@
     <string name="permdesc_bindPrintService">Allows the holder to bind to the top-level
         interface of a print service. Should never be needed for normal apps.</string>
 
-    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permlab_accessAllPrintJobs">access all print jobs</string>
-    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
-    <string name="permdesc_accessAllPrintJobs">Allows the holder to access print jobs
-        created by another app. Should never be needed for normal apps.</string>
-
+    <!-- Title of an application permission, listed so the user can choose
+         whether they want to allow the application to do this. -->
+    <string name="permlab_bindPrintSpoolerService">bind to a print spooler service</string>
+    <!-- Description of an application permission, listed so the user can
+         choose whether they want to allow the application to do this. -->
+    <string name="permdesc_bindPrintSpoolerService">Allows the holder to bind to the top-level
+        interface of a print spooler service. Should never be needed for normal apps.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permlab_bindNfcService">bind to NFC service</string>
@@ -4292,6 +4293,9 @@
     <!-- Write fail reason: couldn't write the printed content. [CHAR LIMIT=none] -->
     <string name="write_fail_reason_cannot_write">Error writing content</string>
 
+    <!-- Print fail reason: unknown. [CHAR LIMIT=25] -->
+    <string name="reason_unknown">unknown</string>
+
     <!-- PIN entry dialog label/hint for PIN [CHAR LIMIT=none] -->
     <string name="restr_pin_enter_pin">Enter PIN</string>
     <!-- PIN entry dialog label/hint for old PIN [CHAR LIMIT=none] -->
diff --git a/core/res/res/values/styles.xml b/core/res/res/values/styles.xml
index 879d0f1..ba72a2b 100644
--- a/core/res/res/values/styles.xml
+++ b/core/res/res/values/styles.xml
@@ -529,7 +529,6 @@
 
     <style name="Widget.CalendarView">
         <item name="android:showWeekNumber">true</item>
-        <item name="android:firstDayOfWeek">1</item>
         <item name="android:minDate">01/01/1900</item>
         <item name="android:maxDate">12/31/2100</item>
         <item name="android:shownWeekCount">6</item>
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
old mode 100755
new mode 100644
index a9c812e..f008b10
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -668,6 +668,7 @@
   <java-symbol type="string" name="preposition_for_time" />
   <java-symbol type="string" name="progress_erasing" />
   <java-symbol type="string" name="progress_unmounting" />
+  <java-symbol type="string" name="mobile_provisioning_apn" />
   <java-symbol type="string" name="mobile_provisioning_url" />
   <java-symbol type="string" name="mobile_redirected_provisioning_url" />
   <java-symbol type="string" name="reboot_safemode_confirm" />
@@ -868,6 +869,7 @@
   <java-symbol type="string" name="mediaSize_na_junior_legal" />
   <java-symbol type="string" name="mediaSize_na_ledger" />
   <java-symbol type="string" name="mediaSize_na_tabloid" />
+  <java-symbol type="string" name="reason_unknown" />
   <java-symbol type="string" name="restr_pin_enter_pin" />
   <java-symbol type="string" name="write_fail_reason_cancelled" />
   <java-symbol type="string" name="write_fail_reason_cannot_write" />
@@ -910,6 +912,7 @@
   <java-symbol type="array" name="config_masterVolumeRamp" />
   <java-symbol type="array" name="config_cdma_dun_supported_types" />
   <java-symbol type="array" name="config_disabledUntilUsedPreinstalledImes" />
+  <java-symbol type="array" name="config_operatorConsideredNonRoaming" />
 
   <java-symbol type="drawable" name="default_wallpaper" />
   <java-symbol type="drawable" name="indicator_input_error" />
@@ -1526,8 +1529,8 @@
   <java-symbol type="string" name="enable_explore_by_touch_warning_title" />
   <java-symbol type="string" name="enable_explore_by_touch_warning_message" />
 
-  <java-symbol type="layout" name="resolver_grid" />
-  <java-symbol type="id" name="resolver_grid" />
+  <java-symbol type="layout" name="resolver_list" />
+  <java-symbol type="id" name="resolver_list" />
   <java-symbol type="id" name="button_once" />
   <java-symbol type="id" name="button_always" />
   <java-symbol type="integer" name="config_maxResolverActivityColumns" />
@@ -1639,6 +1642,7 @@
   <java-symbol type="bool" name="config_sf_slowBlur" />
   <java-symbol type="drawable" name="ic_volume" />
   <java-symbol type="drawable" name="stat_notify_sim_toolkit" />
+  <java-symbol type="bool" name="config_stkNoAlphaUsrCnf" />
 
   <!-- From maps library -->
   <java-symbol type="array" name="maps_starting_lat_lng" />
diff --git a/core/tests/coretests/Android.mk b/core/tests/coretests/Android.mk
index 22fa7fc..be55444 100644
--- a/core/tests/coretests/Android.mk
+++ b/core/tests/coretests/Android.mk
@@ -22,7 +22,7 @@
 	$(call all-java-files-under, EnabledTestApp/src)
 
 LOCAL_DX_FLAGS := --core-library
-LOCAL_STATIC_JAVA_LIBRARIES := core-tests android-common frameworks-core-util-lib mockwebserver guava littlemock
+LOCAL_STATIC_JAVA_LIBRARIES := core-tests-support android-common frameworks-core-util-lib mockwebserver guava littlemock
 LOCAL_JAVA_LIBRARIES := android.test.runner conscrypt telephony-common
 LOCAL_PACKAGE_NAME := FrameworksCoreTests
 
diff --git a/core/tests/coretests/src/android/webkit/AccessibilityInjectorTest.java b/core/tests/coretests/src/android/webkit/AccessibilityInjectorTest.java
deleted file mode 100644
index 417a85f..0000000
--- a/core/tests/coretests/src/android/webkit/AccessibilityInjectorTest.java
+++ /dev/null
@@ -1,1809 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.webkit;
-
-import android.accessibilityservice.AccessibilityService;
-import android.accessibilityservice.AccessibilityServiceInfo;
-import android.content.ComponentName;
-import android.content.ContentResolver;
-import android.content.Intent;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.SystemClock;
-import android.provider.Settings;
-import android.test.ActivityInstrumentationTestCase2;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.view.KeyEvent;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityManager;
-
-/**
- * This is a test for the behavior of the {@link AccessibilityInjector}
- * which is used by {@link WebView} to provide basic accessibility support
- * in case JavaScript is disabled.
- * </p>
- * Note: This test works against the generated {@link AccessibilityEvent}s
- *       to so it also checks if the test for announcing navigation axis and
- *       status messages as appropriate.
- */
-public class AccessibilityInjectorTest
-    extends ActivityInstrumentationTestCase2<AccessibilityInjectorTestActivity> {
-
-    /** The timeout to wait for the expected selection. */
-    private static final long TIMEOUT_WAIT_FOR_SELECTION_STRING = 1000;
-
-    /** The timeout to wait for accessibility and the mock service to be enabled. */
-    private static final long TIMEOUT_ENABLE_ACCESSIBILITY_AND_MOCK_SERVICE = 1000;
-
-    /** The count of tests to detect when to shut down the service. */
-    private static final int TEST_CASE_COUNT = 19;
-
-    /** The meta state for pressed left ALT. */
-    private static final int META_STATE_ALT_LEFT_ON = KeyEvent.META_ALT_ON
-            | KeyEvent.META_ALT_LEFT_ON;
-
-    /** Prefix for the CSS style span appended by WebKit. */
-    private static final String APPLE_SPAN_PREFIX = "<span class=\"Apple-style-span\"";
-
-    /** Suffix for the CSS style span appended by WebKit. */
-    private static final String APPLE_SPAN_SUFFIX = "</span>";
-
-    /** The value for not specified selection string since null is a valid value. */
-    private static final String SELECTION_STRING_UNKNOWN = "Unknown";
-
-    /** Lock for locking the test. */
-    private static final Object sTestLock = new Object();
-
-    /** Key bindings used for testing. */
-    private static final String TEST_KEY_DINDINGS =
-        "0x13=0x01000100;" +
-        "0x14=0x01010100;" +
-        "0x15=0x04000000;" +
-        "0x16=0x04000000;" +
-        "0x200000013=0x03020701:0x03010201:0x03000101:0x03030001:0x03040001:0x03050001:0x03060001;" +
-        "0x200000014=0x03010001:0x03020101:0x03070201:0x03030701:0x03040701:0x03050701:0x03060701;" +
-        "0x200000015=0x03040301:0x03050401:0x03060501:0x03000601:0x03010601:0x03020601:0x03070601;" +
-        "0x200000016=0x03050601:0x03040501:0x03030401:0x03020301:0x03070301:0x03010301:0x03000301;";
-
-    /** Handle to the test for use by the mock service. */
-    private static AccessibilityInjectorTest sInstance;
-
-    /** Flag indicating if the accessibility service is ready to receive events. */
-    private static boolean sIsAccessibilityServiceReady;
-
-    /** The count of executed tests to detect when to toggle accessibility and the service. */
-    private static int sExecutedTestCount;
-
-    /** Worker thread with a handler to perform non test thread processing. */
-    private Worker mWorker;
-
-    /** Handle to the {@link WebView} to load data in. */
-    private WebView mWebView;
-
-    /** Used for caching the default bindings so they can be restored. */
-    private static String sDefaultKeyBindings;
-
-    /** The received selection string for assertion checking. */
-    private static String sReceivedSelectionString = SELECTION_STRING_UNKNOWN;
-
-    public AccessibilityInjectorTest() {
-        super(AccessibilityInjectorTestActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mWorker = new Worker();
-        sInstance = this;
-        if (sExecutedTestCount == 0) {
-            // until JUnit4 comes to play with @BeforeTest
-            disableAccessibilityAndMockAccessibilityService();
-            enableAccessibilityAndMockAccessibilityService();
-            injectTestWebContentKeyBindings();
-        }
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        if (mWorker != null) {
-            mWorker.stop();
-        }
-        if (sExecutedTestCount == TEST_CASE_COUNT) {
-            // until JUnit4 comes to play with @AfterTest
-            disableAccessibilityAndMockAccessibilityService();
-            restoreDefaultWebContentKeyBindings();
-        }
-        super.tearDown();
-    }
-
-    /**
-     * Tests navigation by character.
-     */
-    @LargeTest
-    public void testNavigationByCharacter() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<html>" +
-               "<head>" +
-               "</head>" +
-               "<body>" +
-                   "<p>" +
-                      "a<b>b</b>c" +
-                   "</p>" +
-                   "<p>" +
-                     "d" +
-                   "<p/>" +
-                   "e" +
-               "</body>" +
-             "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // change navigation axis to word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("1"); // expect the word navigation axis
-
-        // change navigation axis to character
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("0"); // expect the character navigation axis
-
-        // go to the first character
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("a");
-
-        // go to the second character
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<b>b</b>");
-
-        // go to the third character
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("c");
-
-        // go to the fourth character
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("d");
-
-        // go to the fifth character
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("e");
-
-        // try to go past the last character
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the fifth character (reverse)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("e");
-
-        // go to the fourth character (reverse)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("d");
-
-        // go to the third character
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("c");
-
-        // go to the second character
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<b>b</b>");
-
-        // go to the first character
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("a");
-
-        // try to go before the first character
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the first character
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("a");
-
-        // go to the second character (reverse again)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<b>b</b>");
-    }
-
-    /**
-     * Tests navigation by word.
-     */
-    @LargeTest
-    public void testNavigationByWord() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<html>" +
-               "<head>" +
-               "</head>" +
-               "<body>" +
-                   "<p>" +
-                      "This is <b>a</b> sentence" +
-                   "</p>" +
-                   "<p>" +
-                     " scattered " +
-                     "<p/>" +
-                     " all over " +
-                   "</p>" +
-                   "<div>" +
-                     "<p>the place.</p>" +
-                   "</div>" +
-               "</body>" +
-             "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // change navigation axis to word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("1"); // expect the word navigation axis
-
-        // go to the first word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("This");
-
-        // go to the second word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("is");
-
-        // go to the third word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<b>a</b>");
-
-        // go to the fourth word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("sentence");
-
-        // go to the fifth word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("scattered");
-
-        // go to the sixth word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("all");
-
-        // go to the seventh word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("over");
-
-        // go to the eight word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("the");
-
-        // go to the ninth word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("place");
-
-        // NOTE: WebKit selection returns the dot as a word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(".");
-
-        // try to go past the last word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the last word (reverse)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("place.");
-
-        // go to the eight word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("the");
-
-        // go to the seventh word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("over");
-
-        // go to the sixth word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("all");
-
-        // go to the fifth word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("scattered");
-
-        // go to the fourth word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("sentence");
-
-        // go to the third word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<b>a</b>");
-
-        // go to the second word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("is");
-
-        // go to the first word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("This");
-
-        // try to go before the first word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the first word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("This");
-
-        // go to the second word (reverse again)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("is");
-    }
-
-    /**
-     * Tests navigation by sentence.
-     */
-    @LargeTest
-    public void testNavigationBySentence() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<div>" +
-                  "<p>" +
-                    "This is the first sentence of the first paragraph and has an <b>inline bold tag</b>." +
-                    "This is the second sentence of the first paragraph." +
-                  "</p>" +
-                  "<h1>This is a heading</h1>" +
-                  "<p>" +
-                    "This is the first sentence of the second paragraph." +
-                    "This is the second sentence of the second paragraph." +
-                  "</p>" +
-                "</div>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // Sentence axis is the default
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("This is the first sentence of the first paragraph and has an "
-                + "<b>inline bold tag</b>.");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("This is the second sentence of the first paragraph.");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("This is a heading");
-
-        // go to the fourth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("This is the first sentence of the second paragraph.");
-
-        // go to the fifth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("This is the second sentence of the second paragraph.");
-
-        // try to go past the last sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the fifth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("This is the second sentence of the second paragraph.");
-
-        // go to the fourth sentence (reverse)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("This is the first sentence of the second paragraph.");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("This is a heading");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("This is the second sentence of the first paragraph.");
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("This is the first sentence of the first paragraph and has an "
-                + "<b>inline bold tag</b>.");
-
-        // try to go before the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("This is the first sentence of the first paragraph and has an "
-                + "<b>inline bold tag</b>.");
-
-        // go to the second sentence (reverse again)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("This is the second sentence of the first paragraph.");
-    }
-
-    /**
-     * Tests navigation by heading.
-     */
-    @LargeTest
-    public void testNavigationByHeading() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<h1>Heading one</h1>" +
-                "<p>" +
-                  "This is some text" +
-                "</p>" +
-                "<h2>Heading two</h2>" +
-                "<p>" +
-                  "This is some text" +
-                "</p>" +
-                "<h3>Heading three</h3>" +
-                "<p>" +
-                  "This is some text" +
-                "</p>" +
-                "<h4>Heading four</h4>" +
-                "<p>" +
-                  "This is some text" +
-                "</p>" +
-                "<h5>Heading five</h5>" +
-                "<p>" +
-                  "This is some text" +
-                "</p>" +
-                "<h6>Heading six</h6>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // change navigation axis to heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_RIGHT, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("3"); // expect the heading navigation axis
-
-        // go to the first heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<h1>Heading one</h1>");
-
-        // go to the second heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<h2>Heading two</h2>");
-
-        // go to the third heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<h3>Heading three</h3>");
-
-        // go to the fourth heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<h4>Heading four</h4>");
-
-        // go to the fifth heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<h5>Heading five</h5>");
-
-        // go to the sixth heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<h6>Heading six</h6>");
-
-        // try to go past the last heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the fifth heading (reverse)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<h5>Heading five</h5>");
-
-        // go to the fourth heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<h4>Heading four</h4>");
-
-        // go to the third heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<h3>Heading three</h3>");
-
-        // go to the second heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<h2>Heading two</h2>");
-
-        // go to the first heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<h1>Heading one</h1>");
-
-        // try to go before the first heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the second heading (reverse again)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<h2>Heading two</h2>");
-    }
-
-    /**
-     * Tests navigation by sibling.
-     */
-    @LargeTest
-    public void testNavigationBySibing() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<h1>Heading one</h1>" +
-                "<p>" +
-                  "This is some text" +
-                "</p>" +
-                "<div>" +
-                  "<button>Input</button>" +
-                "</div>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // change navigation axis to heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_RIGHT, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("3"); // expect the heading navigation axis
-
-        // change navigation axis to sibling
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_RIGHT, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("4"); // expect the sibling navigation axis
-
-        // change navigation axis to parent/first child
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_RIGHT, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("5"); // expect the parent/first child navigation axis
-
-        // go to the first child of the body
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<h1>Heading one</h1>");
-
-        // change navigation axis to sibling
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_LEFT, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("4"); // expect the sibling navigation axis
-
-        // go to the next sibling
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<p>This is some text</p>");
-
-        // go to the next sibling
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<div><button>Input</button></div>");
-
-        // try to go past the last sibling
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the previous sibling (reverse)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<p>This is some text</p>");
-
-        // go to the previous sibling
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<h1>Heading one</h1>");
-
-        // try to go before the previous sibling
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the next sibling (reverse again)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<p>This is some text</p>");
-    }
-
-    /**
-     * Tests navigation by parent/first child.
-     */
-    @LargeTest
-    public void testNavigationByParentFirstChild() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<div>" +
-                  "<button>Input</button>" +
-                "</div>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // change navigation axis to document
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_LEFT, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("6"); // expect the document navigation axis
-
-        // change navigation axis to parent/first child
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_LEFT, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("5"); // expect the parent/first child navigation axis
-
-        // go to the first child
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<div><button>Input</button></div>");
-
-        // go to the first child
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<button>Input</button>");
-
-        // try to go to the first child of a leaf element
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the parent (reverse)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<div><button>Input</button></div>");
-
-        // go to the parent
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<body><div><button>Input</button></div></body>");
-
-        // try to go to the body parent
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the first child (reverse again)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<div><button>Input</button></div>");
-    }
-
-    /**
-     * Tests navigation by document.
-     */
-    @LargeTest
-    public void testNavigationByDocument() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<button>Click</button>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // change navigation axis to document
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_LEFT, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("6"); // expect the document navigation axis
-
-        // go to the bottom of the document
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("Click");
-
-        // go to the top of the document (reverse)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<body><button>Click</button></body>");
-
-        // go to the bottom of the document (reverse again)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("Click");
-    }
-
-    /**
-     * Tests the sync between the text navigation and navigation by DOM elements.
-     */
-    @LargeTest
-    public void testSyncBetweenTextAndDomNodeNavigation() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<p>" +
-                  "First" +
-                "</p>" +
-                "<button>Second</button>" +
-                "<p>" +
-                  "Third" +
-                "</p>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // change navigation axis to word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("1"); // expect the word navigation axis
-
-        // go to the first word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("First");
-
-        // change navigation axis to heading
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_RIGHT, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("3"); // expect the heading navigation axis
-
-        // change navigation axis to sibling
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_RIGHT, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("4"); // expect the sibling navigation axis
-
-        // go to the next sibling
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<button>Second</button>");
-
-        // change navigation axis to character
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("0"); // expect the character navigation axis
-
-        // change navigation axis to word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("1"); // expect the word navigation axis
-
-        // go to the next word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("Third");
-    }
-
-    /**
-     * Tests that the selection does not cross anchor boundaries. This is a
-     * workaround for the asymmetric and inconsistent handling of text with
-     * links by WebKit while traversing by sentence.
-     */
-    @LargeTest
-    public void testEnforceSelectionDoesNotCrossAnchorBoundary1() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<div>First</div>" +
-                "<p>" +
-                  "<a href=\"\">Second</a> Third" +
-                "</p>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<div>First</div>");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<a href=\"\">Second</a>");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("Third");
-
-        // go to past the last sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("Third");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<a href=\"\">Second</a>");
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("First");
-
-        // go to before the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<div>First</div>");
-    }
-
-    /**
-     * Tests that the selection does not cross anchor boundaries. This is a
-     * workaround for the asymmetric and inconsistent handling of text with
-     * links by WebKit while traversing by sentence.
-     */
-    @LargeTest
-    public void testEnforceSelectionDoesNotCrossAnchorBoundary2() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<div>First</div>" +
-                "<a href=\"#\">Second</a>" +
-                "&nbsp;" +
-                "<a href=\"#\">Third</a>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("First");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<a href=\"#\">Second</a>");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("&nbsp;");
-
-        // go to the fourth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<a href=\"#\">Third</a>");
-
-        // go to past the last sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the fourth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<a href=\"#\">Third</a>");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("&nbsp;");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<a href=\"#\">Second</a>");
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("First");
-
-        // go to before the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("First");
-    }
-
-    /**
-     * Tests that the selection does not cross anchor boundaries. This is a
-     * workaround for the asymmetric and inconsistent handling of text with
-     * links by WebKit while traversing by sentence.
-     */
-    @LargeTest
-    public void testEnforceSelectionDoesNotCrossAnchorBoundary3() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<div>" +
-                  "First" +
-                "<div>" +
-                "<div>" +
-                  "<a href=\"#\">Second</a>" +
-                "</div>" +
-                "<div>" +
-                  "Third" +
-                "</div>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("First");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<a href=\"#\">Second</a>");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("Third");
-
-        // go to past the last sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("Third");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<a href=\"#\">Second</a>");
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("First");
-
-        // go to before the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("First");
-    }
-
-    /**
-     * Tests skipping of content with hidden visibility.
-     */
-    @LargeTest
-    public void testSkipVisibilityHidden() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<div>First </div>" +
-                "<div style=\"visibility:hidden;\">Second</div>" +
-                "<div> Third</div>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // change navigation axis to word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("1"); // expect the word navigation axis
-
-        // go to the first word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("First");
-
-        // go to the third word (the second is invisible)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("Third");
-
-        // go to past the last sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the third word (the second is invisible)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("Third");
-
-        // go to the first word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("First");
-
-        // go to before the first word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the first word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("First");
-    }
-
-    /**
-     * Tests skipping of content with display none.
-     */
-    @LargeTest
-    public void testSkipDisplayNone() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<div>First</div>" +
-                "<div style=\"display: none;\">Second</div>" +
-                "<div>Third</div>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // change navigation axis to word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, META_STATE_ALT_LEFT_ON);
-        assertSelectionString("1"); // expect the word navigation axis
-
-        // go to the first word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("First");
-
-        // go to the third word (the second is invisible)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("Third");
-
-        // go to past the last sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the third word (the second is invisible)
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("Third");
-
-        // go to the first word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("First");
-
-        // go to before the first word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the first word
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("First");
-    }
-
-    /**
-     * Tests for the selection not getting stuck.
-     *
-     * Note: The selection always proceeds but if it can
-     * be selecting the same content i.e. between the start
-     * and end are contained the same text nodes.
-     */
-    @LargeTest
-    public void testSelectionTextProceed() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<a href=\"#\">First</a>" +
-                "<span><a href=\"#\"><span>Second</span>&nbsp;<small>a</small></a>" +
-                "</span>&nbsp;<a href=\"#\">Third</a>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<a href=\"#\">First</a>");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<a href=\"#\"><span>Second&nbsp;<small>a</small></a>");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("&nbsp;");
-
-        // go to the fourth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<a href=\"#\">Third</a>");
-
-        // go to past the last sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<a href=\"#\">Third</a>");
-
-        // NOTE: Here we are a bit asymmetric around whitespace but we can live with it
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("&nbsp;");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<a href=\"#\"><span>Second&nbsp;<small>a</small></a>");
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<a href=\"#\">First</a>");
-
-        // go to before the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<a href=\"#\">First</a>");
-    }
-
-    /**
-     * Tests if input elements are selected rather skipped.
-     */
-    @LargeTest
-    public void testSelectionOfInputElements() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<p>" +
-                  "First" +
-                "</p>" +
-                "<input type=\"text\"/>" +
-                "<p>" +
-                  "Second" +
-                "</p>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("First");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<input type=\"text\">");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("Second");
-
-        // go to past the last sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("Second");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<input type=\"text\">");
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("First");
-
-        // go to before the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("First");
-    }
-
-    /**
-     * Tests traversing of input controls.
-     */
-    @LargeTest
-    public void testSelectionOfInputElements2() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<div>" +
-                  "First" +
-                  "<input type=\"text\"/>" +
-                  "<span>" +
-                    "<input type=\"text\"/>" +
-                  "</span>" +
-                  "<button type=\"button\">Click Me!</button>" +
-                  "<div>" +
-                    "<input type=\"submit\"/>" +
-                  "</div>" +
-                  "<p>" +
-                    "Second" +
-                  "</p>" +
-                "</div>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("First");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<input type=\"text\">");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<input type=\"text\">");
-
-        // go to the fourth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<button type=\"button\">Click Me!</button>");
-
-        // go to the fifth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<input type=\"submit\">");
-
-        // go to the sixth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("Second");
-
-        // go to past the last sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the sixth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("Second");
-
-        // go to the fifth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<input type=\"submit\">");
-
-        // go to the fourth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<button type=\"button\">Click Me!</button>");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<input type=\"text\">");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<input type=\"text\">");
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("First");
-    }
-
-    /**
-     * Tests traversing of input controls.
-     */
-    @LargeTest
-    public void testSelectionOfInputElements3() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<input type=\"text\"/>" +
-                "<button type=\"button\">Click Me!</button>" +
-                "<select>" +
-                  "<option value=\"volvo\">Volvo</option>" +
-                  "<option value=\"saab\">Saab</option>" +
-                "</select>" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<input type=\"text\">");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<button type=\"button\">Click Me!</button>");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<select><option value=\"volvo\">Volvo</option>" +
-                "<option value=\"saab\">Saab</option></select>");
-
-        // go to past the last sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<select><option value=\"volvo\">Volvo</option>" +
-                "<option value=\"saab\">Saab</option></select>");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<button type=\"button\">Click Me!</button>");
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<input type=\"text\">");
-
-        // go to before the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<input type=\"text\">");
-    }
-
-    /**
-     * Tests traversing of input controls.
-     */
-    @LargeTest
-    public void testSelectionOfInputElements4() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "Start" +
-                "<span>" +
-                  "<span>" +
-                    "<input type=\"submit\">" +
-                  "</span>" +
-                "</span>" +
-                "<input type=\"text\" size=\"30\">" +
-                "<span>" +
-                  "<span>" +
-                    "<input type=\"submit\" size=\"30\">" +
-                  "</span>" +
-                "</span>" +
-                "End" +
-              "</body>" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("Start");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<input type=\"submit\">");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<input type=\"text\" size=\"30\">");
-
-        // go to the fourth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<input type=\"submit\" size=\"30\">");
-
-        // go to the fifth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("End");
-
-        // go to past the last sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the fifth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("End");
-
-        // go to the fourth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<input type=\"submit\" size=\"30\">");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<input type=\"text\" size=\"30\">");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<input type=\"submit\">");
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("Start");
-
-        // go to before the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("Start");
-    }
-
-    /**
-     * Tests traversing of input controls.
-     */
-    @LargeTest
-    public void testSelectionOfInputElements5() throws Exception {
-        // a bit ugly but helps detect beginning and end of all tests so accessibility
-        // and the mock service are not toggled on every test (expensive)
-        sExecutedTestCount++;
-
-        String html =
-            "<!DOCTYPE html>" +
-            "<html>" +
-              "<head>" +
-              "</head>" +
-              "<body>" +
-                "<div>" +
-                  "First" +
-                  "<input type=\"hidden\">" +
-                  "<input type=\"hidden\">" +
-                  "<input type=\"hidden\">" +
-                  "<input type=\"hidden\">" +
-                  "<input type=\"text\">" +
-                  "<span>" +
-                    "<span>" +
-                      "<input type=\"submit\">" +
-                    "</span>" +
-                  "</span>" +
-                "</div>" +
-              "</body>" +
-              "Second" +
-            "</html>";
-
-        WebView webView = loadHTML(html);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("First");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<input type=\"text\">");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("<input type=\"submit\">");
-
-        // go to the fourth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("Second");
-
-        // go to past the last sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString(null);
-
-        // go to the fourth sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("Second");
-
-        // go to the third sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<input type=\"submit\">");
-
-        // go to the second sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("<input type=\"text\">");
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString("First");
-
-        // go to before the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_UP, 0);
-        assertSelectionString(null);
-
-        // go to the first sentence
-        sendKeyEvent(webView, KeyEvent.KEYCODE_DPAD_DOWN, 0);
-        assertSelectionString("First");
-    }
-
-    /**
-     * Enable accessibility and the mock accessibility service.
-     */
-    private void enableAccessibilityAndMockAccessibilityService() {
-        // make sure the manager is instantiated so the system initializes it
-        AccessibilityManager.getInstance(getActivity());
-
-        // enable accessibility and the mock accessibility service
-        Settings.Secure.putInt(getActivity().getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_ENABLED, 1);
-        String enabledServices = new ComponentName(getActivity().getPackageName(),
-                MockAccessibilityService.class.getName()).flattenToShortString();
-        Settings.Secure.putString(getActivity().getContentResolver(),
-                Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, enabledServices);
-
-        // poll within a timeout and let be interrupted in case of success
-        long incrementStep = TIMEOUT_ENABLE_ACCESSIBILITY_AND_MOCK_SERVICE / 5;
-        long start = SystemClock.uptimeMillis();
-        while (SystemClock.uptimeMillis() - start < TIMEOUT_ENABLE_ACCESSIBILITY_AND_MOCK_SERVICE &&
-                !sIsAccessibilityServiceReady) {
-            synchronized (sTestLock) {
-                try {
-                    sTestLock.wait(incrementStep);
-                } catch (InterruptedException ie) {
-                    /* ignore */
-                }
-            }
-        }
-
-        if (!sIsAccessibilityServiceReady) {
-            throw new IllegalStateException("MockAccessibilityService not ready. Did you add " +
-                    "tests and forgot to update AccessibilityInjectorTest#TEST_CASE_COUNT?");
-        }
-    }
-
-    @Override
-    protected void scrubClass(Class<?> testCaseClass) {
-        /* do nothing - avoid superclass behavior */
-    }
-
-    /**
-     * Strips the apple span appended by WebKit while generating
-     * the selection markup.
-     *
-     * @param markup The markup.
-     * @return Stripped from apple spans markup.
-     */
-    private static String stripAppleSpanFromMarkup(String markup) {
-        StringBuilder stripped = new StringBuilder(markup);
-        int prefixBegIdx = stripped.indexOf(APPLE_SPAN_PREFIX);
-        while (prefixBegIdx >= 0) {
-            int prefixEndIdx = stripped.indexOf(">", prefixBegIdx) + 1;
-            stripped.replace(prefixBegIdx, prefixEndIdx, "");
-            int suffixBegIdx = stripped.lastIndexOf(APPLE_SPAN_SUFFIX);
-            int suffixEndIdx = suffixBegIdx + APPLE_SPAN_SUFFIX.length();
-            stripped.replace(suffixBegIdx, suffixEndIdx, "");
-            prefixBegIdx = stripped.indexOf(APPLE_SPAN_PREFIX);
-        }
-        return stripped.toString();
-    }
-
-    /**
-     * Disables accessibility and the mock accessibility service.
-     */
-    private void disableAccessibilityAndMockAccessibilityService() {
-        // disable accessibility and the mock accessibility service
-        Settings.Secure.putInt(getActivity().getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_ENABLED, 0);
-        Settings.Secure.putString(getActivity().getContentResolver(),
-                Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "");
-    }
-
-    /**
-     * Asserts the next <code>expectedSelectionString</code> to be received.
-     */
-    private void assertSelectionString(String expectedSelectionString) {
-        assertTrue("MockAccessibilityService not ready", sIsAccessibilityServiceReady);
-
-        long incrementStep = TIMEOUT_WAIT_FOR_SELECTION_STRING / 5;
-        long start = SystemClock.uptimeMillis();
-        while (SystemClock.uptimeMillis() - start < TIMEOUT_WAIT_FOR_SELECTION_STRING &&
-                sReceivedSelectionString == SELECTION_STRING_UNKNOWN) {
-            synchronized (sTestLock) {
-                try {
-                    sTestLock.wait(incrementStep);
-                } catch (InterruptedException ie) {
-                    /* ignore */
-                }
-            }
-        }
-        try {
-            if (sReceivedSelectionString == SELECTION_STRING_UNKNOWN) {
-                fail("No selection string received. Expected: " + expectedSelectionString);
-            }
-            assertEquals(expectedSelectionString, sReceivedSelectionString);
-        } finally {
-            sReceivedSelectionString = SELECTION_STRING_UNKNOWN;
-        }
-    }
-
-    /**
-     * Sends a {@link KeyEvent} (up and down) to the {@link WebView}.
-     *
-     * @param keyCode The event key code.
-     */
-    private void sendKeyEvent(WebView webView, int keyCode, int metaState) {
-        webView.onKeyDown(keyCode, new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, keyCode, 1, metaState));
-        webView.onKeyUp(keyCode, new KeyEvent(0, 0, KeyEvent.ACTION_UP, keyCode, 1, metaState));
-    }
-
-    /**
-     * Loads HTML content in a {@link WebView}.
-     *
-     * @param html The HTML content;
-     * @return The {@link WebView} view.
-     */
-    private WebView loadHTML(final String html) {
-        mWorker.getHandler().post(new Runnable() {
-            public void run() {
-                if (mWebView == null) {
-                    mWebView = getActivity().getWebView();
-                    mWebView.setWebViewClient(new WebViewClient() {
-                        @Override
-                        public void onPageFinished(WebView view, String url) {
-                            mWorker.getHandler().post(new Runnable() {
-                                public void run() {
-                                    synchronized (sTestLock) {
-                                        sTestLock.notifyAll();
-                                    }
-                                }
-                            });
-                        }
-                    });
-                }
-                mWebView.loadData(html, "text/html", null);
-            }
-        });
-        synchronized (sTestLock) {
-            try {
-                sTestLock.wait();
-            } catch (InterruptedException ie) {
-                /* ignore */
-            }
-        }
-        return mWebView;
-    }
-
-    /**
-     * Injects web content key bindings used for testing. This is required
-     * to ensure that this test will be agnostic to changes of the bindings.
-     */
-    private void injectTestWebContentKeyBindings() {
-        ContentResolver contentResolver = getActivity().getContentResolver();
-        sDefaultKeyBindings = Settings.Secure.getString(contentResolver,
-                Settings.Secure.ACCESSIBILITY_WEB_CONTENT_KEY_BINDINGS);
-        Settings.Secure.putString(contentResolver,
-                Settings.Secure.ACCESSIBILITY_WEB_CONTENT_KEY_BINDINGS, TEST_KEY_DINDINGS);
-    }
-
-    /**
-     * Restores the default web content key bindings.
-     */
-    private void restoreDefaultWebContentKeyBindings() {
-        Settings.Secure.putString(getActivity().getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_WEB_CONTENT_KEY_BINDINGS,
-                sDefaultKeyBindings);
-    }
-
-    /**
-     * This is a worker thread responsible for creating the {@link WebView}.
-     */
-    private class Worker implements Runnable {
-        private final Object mWorkerLock = new Object();
-        private Handler mHandler;
-
-       public Worker() {
-            new Thread(this).start();
-            synchronized (mWorkerLock) {
-                while (mHandler == null) {
-                    try {
-                        mWorkerLock.wait();
-                    } catch (InterruptedException ex) {
-                        /* ignore */
-                    }
-                }
-            }
-        }
-
-        public void run() {
-            synchronized (mWorkerLock) {
-                Looper.prepare();
-                mHandler = new Handler();
-                mWorkerLock.notifyAll();
-            }
-            Looper.loop();
-        }
-
-        public Handler getHandler() {
-            return mHandler;
-        }
-
-        public void stop() {
-            mHandler.getLooper().quit();
-        }
-    }
-
-    /**
-     * Mock accessibility service to receive the accessibility events
-     * with the current {@link WebView} selection.
-     */
-    public static class MockAccessibilityService extends AccessibilityService {
-        private boolean mIsServiceInfoSet;
-
-        @Override
-        protected void onServiceConnected() {
-            if (mIsServiceInfoSet) {
-                return;
-            }
-            AccessibilityServiceInfo info = new AccessibilityServiceInfo();
-            info.eventTypes = AccessibilityEvent.TYPE_VIEW_SELECTED;
-            info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC;
-            setServiceInfo(info);
-            mIsServiceInfoSet = true;
-
-            sIsAccessibilityServiceReady = true;
-
-            if (sInstance == null) {
-                return;
-            }
-            synchronized (sTestLock) {
-                sTestLock.notifyAll();
-            }
-        }
-
-        @Override
-        public void onAccessibilityEvent(AccessibilityEvent event) {
-            if (sInstance == null) {
-                return;
-            }
-            if (!event.getText().isEmpty()) {
-                CharSequence text = event.getText().get(0);
-                if (text != null) {
-                    sReceivedSelectionString = stripAppleSpanFromMarkup(text.toString());
-                } else {
-                    sReceivedSelectionString = null;
-                }
-            }
-            synchronized (sTestLock) {
-                sTestLock.notifyAll();
-            }
-        }
-
-        @Override
-        public void onInterrupt() {
-            /* do nothing */
-        }
-
-        @Override
-        public boolean onUnbind(Intent intent) {
-            sIsAccessibilityServiceReady = false;
-            return false;
-        }
-    }
-}
diff --git a/core/tests/coretests/src/android/webkit/AccessibilityInjectorTestActivity.java b/core/tests/coretests/src/android/webkit/AccessibilityInjectorTestActivity.java
deleted file mode 100644
index 3842df7..0000000
--- a/core/tests/coretests/src/android/webkit/AccessibilityInjectorTestActivity.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.webkit;
-
-import com.android.frameworks.coretests.R;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-public class AccessibilityInjectorTestActivity extends Activity {
-
-    private WebView mWebView;
-
-    @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-        setContentView(R.layout.accessibility_injector_test);
-        mWebView = (WebView) findViewById(R.id.webview);
-    }
-
-    public WebView getWebView() {
-        return mWebView;
-    }
-}
diff --git a/core/tests/coretests/src/android/webkit/UrlInterceptRegistryTest.java b/core/tests/coretests/src/android/webkit/UrlInterceptRegistryTest.java
deleted file mode 100644
index 7504449..0000000
--- a/core/tests/coretests/src/android/webkit/UrlInterceptRegistryTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.webkit;
-
-import android.test.AndroidTestCase;
-import android.util.Log;
-import android.webkit.CacheManager.CacheResult;
-import android.webkit.PluginData;
-import android.webkit.UrlInterceptHandler;
-
-import java.util.LinkedList;
-import java.util.Map;
-
-public class UrlInterceptRegistryTest extends AndroidTestCase {
-
-    /**
-     * To run these tests: $ mmm
-     * frameworks/base/tests/CoreTests/android && adb remount && adb
-     * sync $ adb shell am instrument -w  -e class \
-     * android.webkit.UrlInterceptRegistryTest \
-     * android.core/android.test.InstrumentationTestRunner
-     */
-
-    private static class MockUrlInterceptHandler implements UrlInterceptHandler {
-        private PluginData mData;
-        private String mUrl;
-
-        public MockUrlInterceptHandler(PluginData data, String url) {
-            mData = data;
-            mUrl = url;
-        }
-
-        public CacheResult service(String url, Map<String, String> headers) {
-            return null;
-        }
-
-        public PluginData getPluginData(String url,
-                                        Map<String,
-                                        String> headers) {
-            if (mUrl.equals(url)) {
-                return mData;
-            }
-
-            return null;
-        }
-    }
-
-    public void testGetPluginData() {
-        PluginData data = new PluginData(null, 0 , null, 200);
-        String url = new String("url1");
-        MockUrlInterceptHandler handler1 =
-                new MockUrlInterceptHandler(data, url);
-
-        data = new PluginData(null, 0 , null, 404);
-        url = new String("url2");
-        MockUrlInterceptHandler handler2 =
-                new MockUrlInterceptHandler(data, url);
-
-        assertTrue(UrlInterceptRegistry.registerHandler(handler1));
-        assertTrue(UrlInterceptRegistry.registerHandler(handler2));
-
-        data = UrlInterceptRegistry.getPluginData("url1", null);
-        assertTrue(data != null);
-        assertTrue(data.getStatusCode() == 200);
-
-        data = UrlInterceptRegistry.getPluginData("url2", null);
-        assertTrue(data != null);
-        assertTrue(data.getStatusCode() == 404);
-
-        assertTrue(UrlInterceptRegistry.unregisterHandler(handler1));
-        assertTrue(UrlInterceptRegistry.unregisterHandler(handler2));
-
-    }
-}
diff --git a/core/tests/coretests/src/android/webkit/WebkitTest.java b/core/tests/coretests/src/android/webkit/WebkitTest.java
deleted file mode 100644
index 4685e3c..0000000
--- a/core/tests/coretests/src/android/webkit/WebkitTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.webkit;
-
-import android.test.AndroidTestCase;
-import android.text.format.DateFormat;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.util.Log;
-import android.webkit.DateSorter;
-
-import java.util.Calendar;
-import java.util.Date;
-
-public class WebkitTest extends AndroidTestCase {
-
-    private static final String LOGTAG = WebkitTest.class.getName();
-
-    @MediumTest
-    public void testDateSorter() throws Exception {
-        /**
-         * Note: check the logging output manually to test
-         * nothing automated yet, besides object creation
-         */
-        DateSorter dateSorter = new DateSorter(mContext);
-        Date date = new Date();
-
-        for (int i = 0; i < DateSorter.DAY_COUNT; i++) {
-            Log.i(LOGTAG, "Boundary " + i + " " + dateSorter.getBoundary(i));
-            Log.i(LOGTAG, "Label " + i + " " + dateSorter.getLabel(i));
-        }
-
-        Calendar c = Calendar.getInstance();
-        long time = c.getTimeInMillis();
-        int index;
-        Log.i(LOGTAG, "now: " + dateSorter.getIndex(time));
-        for (int i = 0; i < 20; i++) {
-            time -= 8 * 60 * 60 * 1000; // 8 hours
-            date.setTime(time);
-            c.setTime(date);
-            index = dateSorter.getIndex(time);
-            Log.i(LOGTAG, "time: " + DateFormat.format("yyyy/MM/dd HH:mm:ss", c).toString() +
-                    " " + index + " " + dateSorter.getLabel(index));
-        }
-    }
-}
diff --git a/core/tests/coretests/src/android/webkit/ZoomManagerTest.java b/core/tests/coretests/src/android/webkit/ZoomManagerTest.java
deleted file mode 100644
index 7e0e0b2..0000000
--- a/core/tests/coretests/src/android/webkit/ZoomManagerTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package android.webkit;
-
-import android.test.AndroidTestCase;
-
-public class ZoomManagerTest extends AndroidTestCase {
-
-    private ZoomManager zoomManager;
-
-    @Override
-    public void setUp() {
-        WebView webView = new WebView(this.getContext());
-        WebViewClassic webViewClassic = WebViewClassic.fromWebView(webView);
-        CallbackProxy callbackProxy = new CallbackProxy(this.getContext(), webViewClassic);
-        zoomManager = new ZoomManager(webViewClassic, callbackProxy);
-
-        zoomManager.init(1.00f);
-    }
-
-    public void testInit() {
-        testInit(0.01f);
-        testInit(1.00f);
-        testInit(1.25f);
-    }
-
-    private void testInit(float density) {
-        zoomManager.init(density);
-        actualScaleTest(density);
-        defaultScaleTest(density);
-        assertEquals(zoomManager.getDefaultMaxZoomScale(), zoomManager.getMaxZoomScale());
-        assertEquals(zoomManager.getDefaultMinZoomScale(), zoomManager.getMinZoomScale());
-        assertEquals(density, zoomManager.getTextWrapScale());
-    }
-
-    public void testUpdateDefaultZoomDensity() {
-        // test the basic case where the actual values are equal to the defaults
-        testUpdateDefaultZoomDensity(0.01f);
-        testUpdateDefaultZoomDensity(1.00f);
-        testUpdateDefaultZoomDensity(1.25f);
-    }
-
-    private void testUpdateDefaultZoomDensity(float density) {
-        zoomManager.updateDefaultZoomDensity(density);
-        defaultScaleTest(density);
-    }
-
-    public void testUpdateDefaultZoomDensityWithSmallMinZoom() {
-        // test the case where the minZoomScale has changed to be < the default
-        float newDefaultScale = 1.50f;
-        float minZoomScale = ZoomManager.DEFAULT_MIN_ZOOM_SCALE_FACTOR * newDefaultScale;
-        WebViewCore.ViewState minViewState = new WebViewCore.ViewState();
-        minViewState.mMinScale = minZoomScale - 0.1f;
-        zoomManager.updateZoomRange(minViewState, 0, 0);
-        zoomManager.updateDefaultZoomDensity(newDefaultScale);
-        defaultScaleTest(newDefaultScale);
-    }
-
-    public void testUpdateDefaultZoomDensityWithLargeMinZoom() {
-        // test the case where the minZoomScale has changed to be > the default
-        float newDefaultScale = 1.50f;
-        float minZoomScale = ZoomManager.DEFAULT_MIN_ZOOM_SCALE_FACTOR * newDefaultScale;
-        WebViewCore.ViewState minViewState = new WebViewCore.ViewState();
-        minViewState.mMinScale = minZoomScale + 0.1f;
-        zoomManager.updateZoomRange(minViewState, 0, 0);
-        zoomManager.updateDefaultZoomDensity(newDefaultScale);
-        defaultScaleTest(newDefaultScale);
-    }
-
-    public void testUpdateDefaultZoomDensityWithSmallMaxZoom() {
-        // test the case where the maxZoomScale has changed to be < the default
-        float newDefaultScale = 1.50f;
-        float maxZoomScale = ZoomManager.DEFAULT_MAX_ZOOM_SCALE_FACTOR * newDefaultScale;
-        WebViewCore.ViewState maxViewState = new WebViewCore.ViewState();
-        maxViewState.mMaxScale = maxZoomScale - 0.1f;
-        zoomManager.updateZoomRange(maxViewState, 0, 0);
-        zoomManager.updateDefaultZoomDensity(newDefaultScale);
-        defaultScaleTest(newDefaultScale);
-    }
-
-    public void testUpdateDefaultZoomDensityWithLargeMaxZoom() {
-        // test the case where the maxZoomScale has changed to be > the default
-        float newDefaultScale = 1.50f;
-        float maxZoomScale = ZoomManager.DEFAULT_MAX_ZOOM_SCALE_FACTOR * newDefaultScale;
-        WebViewCore.ViewState maxViewState = new WebViewCore.ViewState();
-        maxViewState.mMaxScale = maxZoomScale + 0.1f;
-        zoomManager.updateZoomRange(maxViewState, 0, 0);
-        zoomManager.updateDefaultZoomDensity(newDefaultScale);
-        defaultScaleTest(newDefaultScale);
-    }
-
-    public void testComputeScaleWithLimits() {
-        final float maxScale = zoomManager.getMaxZoomScale();
-        final float minScale = zoomManager.getMinZoomScale();
-        assertTrue(maxScale > minScale);
-        assertEquals(maxScale, zoomManager.computeScaleWithLimits(maxScale));
-        assertEquals(maxScale, zoomManager.computeScaleWithLimits(maxScale + .01f));
-        assertEquals(minScale, zoomManager.computeScaleWithLimits(minScale));
-        assertEquals(minScale, zoomManager.computeScaleWithLimits(minScale - .01f));
-    }
-
-    private void actualScaleTest(float actualScale) {
-        assertEquals(actualScale, zoomManager.getScale());
-        assertEquals(1 / actualScale, zoomManager.getInvScale());
-    }
-
-    private void defaultScaleTest(float defaultScale) {
-        final float maxDefault = ZoomManager.DEFAULT_MAX_ZOOM_SCALE_FACTOR * defaultScale;
-        final float minDefault = ZoomManager.DEFAULT_MIN_ZOOM_SCALE_FACTOR * defaultScale;
-        assertEquals(defaultScale, zoomManager.getDefaultScale());
-        assertEquals(1 / defaultScale, zoomManager.getInvDefaultScale());
-        assertEquals(maxDefault, zoomManager.getDefaultMaxZoomScale());
-        assertEquals(minDefault, zoomManager.getDefaultMinZoomScale());
-    }
-}
diff --git a/docs/downloads/training/AndroidTestingFun.zip b/docs/downloads/training/AndroidTestingFun.zip
new file mode 100644
index 0000000..dca5812
--- /dev/null
+++ b/docs/downloads/training/AndroidTestingFun.zip
Binary files differ
diff --git a/docs/html/images/gp-policy-spam-reqrating.png b/docs/html/images/gp-policy-spam-reqrating.png
index 3dc7d6f..20e17c1 100644
--- a/docs/html/images/gp-policy-spam-reqrating.png
+++ b/docs/html/images/gp-policy-spam-reqrating.png
Binary files differ
diff --git a/docs/html/images/training/lesson2_MyFirstTestActivityTest_result.png b/docs/html/images/training/lesson2_MyFirstTestActivityTest_result.png
new file mode 100644
index 0000000..e0e869b
--- /dev/null
+++ b/docs/html/images/training/lesson2_MyFirstTestActivityTest_result.png
Binary files differ
diff --git a/docs/html/training/activity-testing/activity-basic-testing.jd b/docs/html/training/activity-testing/activity-basic-testing.jd
new file mode 100644
index 0000000..016289d
--- /dev/null
+++ b/docs/html/training/activity-testing/activity-basic-testing.jd
@@ -0,0 +1,227 @@
+page.title=Creating and Running a Test Case
+trainingnavtop=true
+
+@jd:body
+
+<!-- This is the training bar -->
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>This lesson teaches you to</h2>
+<ol>
+  <li><a href="#testcase">Create a Test Case for Activity Testing</a>
+      <ol>
+      <li><a href="#fixture">Set Up Your Test Fixture</a></li>
+      <li><a href="#preconditions">Add Test Preconditions</a></li>
+      <li><a href="#test_method">Add Test Methods to Verify Your Activity</a></li>
+      </ol>
+  </li>
+  <li><a href="#build_run">Build and Run Your Test</a></li>
+</ol>
+
+<h2>You should also read</h2>
+<ul>
+<li><a href="{@docRoot}tools/testing/testing_android.html">Testing
+Fundamentals</a></li>
+</ul>
+
+</div>
+</div>
+<p>In order to verify that there are no regressions in the layout design and
+functional behavior in your application, it's important to
+create a test for each {@link android.app.Activity} in your application. For
+each test, you need to create the individual parts of a test case, including
+the test fixture, preconditions test method, and {@link android.app.Activity}
+test methods. You can then run your test to get a test report. If any test
+method fails, this might indicate a potential defect in your code.</p>
+<p class="note"><strong>Note:</strong> In the Test-Driven Development (TDD)
+approach, instead of writing most or all of your app code up-front and then
+running tests later in the development cycle, you would progressively write
+just enough production code to satisfy your test dependencies, update your
+test cases to reflect new functional requirements, and iterate repeatedly this
+way.</p>
+
+<h2 id="testcase">Create a Test Case</h2>
+<p>{@link android.app.Activity} tests are written in a structured way.
+Make sure to put your tests in a separate package, distinct from the code under
+test.</p>
+<p>By convention, your test package name should follow the same name as the
+application package, suffixed with <strong>".tests"</strong>. In the test package
+you created, add the Java class for your test case. By convention, your test case
+name should also follow the same name as the Java or Android class that you
+want to test, but suffixed with <strong>“Test”</strong>.</p>
+<p>To create a new test case in Eclipse:</p>
+<ol type="a">
+   <li>In the Package Explorer, right-click on the {@code /src} directory for
+your test project and select <strong>New &gt; Package</strong>.</li>
+   <li>Set the <strong>Name</strong> field to
+{@code &lt;your_app_package_name&gt;.tests} (for example,
+{@code com.example.android.testingfun.tests}) and click
+<strong>Finish</strong>.</li>
+   <li>Right-click on the test package you created, and select
+<strong>New &gt; Class</strong>.</li>
+    <li>Set the <strong>Name</strong> field to
+{@code &lt;your_app_activity_name&gt;Test} (for example,
+{@code MyFirstTestActivityTest}) and click <strong>Finish</strong>.</li>
+</ol>
+
+<h3 id="fixture">Set Up Your Test Fixture</h3>
+<p>A <em>test fixture</em> consists of objects that must be initialized for
+running one or more tests. To set up the test fixture, you can override the
+{@link junit.framework.TestCase#setUp()} and
+{@link junit.framework.TestCase#tearDown()} methods in your test. The
+test runner automatically runs {@link junit.framework.TestCase#setUp()} before
+running any other test methods, and {@link junit.framework.TestCase#tearDown()}
+at the end of each test method execution. You can use these methods to keep
+the code for test initialization and clean up separate from the tests methods.
+</p>
+<p>To set up your test fixture in Eclipse:</p>
+<ol>
+<li>In the Package Explorer, double-click on the test case that you created
+earlier to bring up the Eclipse Java editor, then modify your test case class
+to extend one of the sub-classes of {@link android.test.ActivityTestCase}.
+<p>For example:</p>
+<pre>
+public class MyFirstTestActivityTest
+        extends ActivityInstrumentationTestCase2&lt;MyFirstTestActivity&gt; {
+</pre>
+</li>
+<li>Next, add the constructor and {@link junit.framework.TestCase#setUp()}
+methods to your test case, and add variable declarations for the
+{@link android.app.Activity} that you want to test.</p>
+<p>For example:</p>
+<pre>
+public class MyFirstTestActivityTest
+        extends ActivityInstrumentationTestCase2&lt;MyFirstTestActivity&gt; {
+
+    private MyFirstTestActivity mFirstTestActivity;
+    private TextView mFirstTestText;
+
+    public MyFirstTestActivityTest() {
+        super(MyFirstTestActivity.class);
+    }
+
+    &#64;Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mFirstTestActivity = getActivity();
+        mFirstTestText =
+                (TextView) mFirstTestActivity
+                .findViewById(R.id.my_first_test_text_view);
+    }
+}
+</pre>
+<p>The constructor is invoked by the test runner to instantiate the test
+class, while the {@link junit.framework.TestCase#setUp()} method is invoked by
+the test runner before it runs any tests in the test class.</p>
+</li>
+</ol>
+
+<p>Typically, in the {@link junit.framework.TestCase#setUp()} method, you
+should:</p>
+<ul>
+<li>Invoke the superclass constructor for
+{@link junit.framework.TestCase#setUp()}, which is required by JUnit.</li>
+<li>Initialize your test fixture state by:
+   <ul>
+   <li>Defining the instance variables that store the state of the fixture.</li>
+   <li>Creating and storing a reference to an instance of the
+{@link android.app.Activity} under test.</li>
+   <li>Obtaining a reference to any UI components in the
+{@link android.app.Activity} that you want to test.</li>
+   </ul>
+</ul>
+
+<p>You can use the
+{@link android.test.ActivityInstrumentationTestCase2#getActivity()} method to
+get a reference to the {@link android.app.Activity} under test.</p>
+
+<h3 id="preconditions">Add Test Preconditions</h3>
+<p>As a sanity check, it is good practice to verify that the test fixture has
+been set up correctly, and the objects that you want to test have been correctly
+instantiated or initialized. That way, you won’t have to see
+tests failing because something was wrong with the setup of your test fixture.
+By convention, the method for verifying your test fixture is called
+{@code testPreconditions()}.</p>
+
+<p>For example, you might want to add a {@code testPreconditons()} method like
+this to your test case:</p>
+
+<pre>
+public void testPreconditions() {
+    assertNotNull(“mFirstTestActivity is null”, mFirstTestActivity);
+    assertNotNull(“mFirstTestText is null”, mFirstTestText);
+}
+</pre>
+
+<p>The assertion methods are from the JUnit {@link junit.framework.Assert}
+class. Generally, you can use assertions to
+verify if a specific condition that you want to test is true.
+<ul>
+<li>If the condition is false, the assertion method throws an
+{@link android.test.AssertionFailedError} exception, which is then typically
+reported by the test runner. You can provide a string in the first argument of
+your assertion method to give some contextual details if the assertion fails.</li>
+<li>If the condition is true, the test passes.</li>
+</ul>
+<p>In both cases, the test runner proceeds to run the other test methods in the
+test case.</p>
+
+<h3 id="test_method">Add Test Methods to Verify Your Activity</h3>
+<p>Next, add one or more test methods to verify the layout and functional
+behavior of your {@link android.app.Activity}.</p>
+<p>For example, if your {@link android.app.Activity} includes a
+{@link android.widget.TextView}, you can add a test method like this to check
+that it has the correct label text:</p>
+<pre>
+public void testMyFirstTestTextView_labelText() {
+    final String expected =
+            mFirstTestActivity.getString(R.string.my_first_test);
+    final String actual = mFirstTestText.getText().toString();
+    assertEquals(expected, actual);
+}
+</pre>
+
+<p>The {@code testMyFirstTestTextView_labelText()} method simply checks that the
+default text of the {@link android.widget.TextView} that is set by the layout
+is the same as the expected text defined in the {@code strings.xml} resource.</p>
+<p class="note"><strong>Note:</strong> When naming test methods, you can use
+an underscore to separate what is being tested from the specific case being
+tested. This style makes it easier to see exactly what cases are being tested.</p>
+<p>When doing this type of string value comparison, it’s good practice to read
+the expected string from your resources, instead of hardcoding the string in
+your comparison code. This prevents your test from easily breaking whenever the
+string definitions are modified in the resource file.</p>
+<p>To perform the comparison, pass both the expected and actual strings as
+arguments to the
+{@link junit.framework.Assert#assertEquals(java.lang.String, java.lang.String) assertEquals()}
+method. If the values are not the same, the assertion will throw an
+{@link junit.framework.AssertionFailedError} exception.</p>
+<p>If you added a {@code testPreconditions()} method, put your test methods
+after the {@code testPreconditions()} definition in your Java class.</p>
+<p>For a complete test case example, take a look at
+{@code MyFirstTestActivityTest.java} in the sample app.</p>
+
+<h2 id="build_run">Build and Run Your Test</h2>
+<p>You can build and run your test easily from the Package Explorer in
+Eclipse.</p>
+<p>To build and run your test:</p>
+<ol>
+<li>Connect an Android device to your machine. On the device or emulator, open
+the <strong>Settings</strong> menu, select <strong>Developer options</strong>
+and make sure that USB debugging is enabled.</li>
+<li>In the Project Explorer, right-click on the test class that you created
+earlier and select <strong>Run As &gt; Android Junit Test</strong>.</li>
+<li>In the Android Device Chooser dialog, select the device that you just
+connected, then click <strong>OK</strong>.</li>
+<li>In the JUnit view, verify that the test passes with no errors or failures.</li>
+</ol>
+<p>For example, if the test case passes with no errors, the result should look
+like this:</p>
+<img src="{@docRoot}images/training/activity-testing_lesson2_MyFirstTestActivityTest_result.png" alt="" />
+<p class="img-caption">
+  <strong>Figure 1.</strong> Result of a test with no errors.
+</p>
+
+
+
diff --git a/docs/html/training/activity-testing/activity-functional-testing.jd b/docs/html/training/activity-testing/activity-functional-testing.jd
new file mode 100644
index 0000000..7c8ff1d
--- /dev/null
+++ b/docs/html/training/activity-testing/activity-functional-testing.jd
@@ -0,0 +1,166 @@
+page.title=Creating Functional Tests
+trainingnavtop=true
+@jd:body
+
+<!-- This is the training bar -->
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>This lesson teaches you to</h2>
+<ol>
+   <li><a href="#test_methods">Add Test Method to Validate Functional Behavior</a>
+   <ol>
+      <li><a href="#activitymonitor">Set Up an ActivityMonitor</a></li>
+      <li><a href="#keyinput">Send Keyboard Input Using Instrumentation</a></li>
+   </ol>
+   </li>
+</ol>
+
+<h2>Try it out</h2>
+<div class="download-box">
+ <a href="http://developer.android.com/shareables/training/AndroidTestingFun.zip"
+class="button">Download the demo</a>
+ <p class="filename">AndroidTestingFun.zip</p>
+</div>
+
+</div>
+</div>
+<p>Functional testing involves verifying that individual application
+components work together as expected by the user. For example, you can create a
+functional test to verify that an {@link android.app.Activity} correctly
+launches a target {@link android.app.Activity} when the user performs a UI
+interaction.</p>
+
+<p>To create a functional test for your {@link android.app.Activity}, your test
+class should extend {@link android.test.ActivityInstrumentationTestCase2}.
+Unlike {@link android.test.ActivityUnitTestCase},
+tests in {@link android.test.ActivityInstrumentationTestCase2} can
+communicate with the Android system and send keyboard input and click events to
+the UI.</p>
+
+<p>For a complete test case example, take a look at
+{@code SenderActivityTest.java} in the sample app.</p>
+
+<h2 id="test_methods">Add Test Method to Validate Functional Behavior</h2>
+<p id="test_goals">Your functional testing goals might include:</p>
+<ul>
+<li>Verifying that a target {@link android.app.Activity} is started when a
+UI control is pushed in the sender {@link android.app.Activity}.</li>
+<li>Verifying that the target {@link android.app.Activity} displays the
+correct data based on the user's input in the sender
+{@link android.app.Activity}.</li>
+</ul>
+<p>You might implement your test method like this:</p>
+
+<pre>
+&#64;MediumTest
+public void testSendMessageToReceiverActivity() {
+    final Button sendToReceiverButton = (Button) 
+            mSenderActivity.findViewById(R.id.send_message_button);
+
+    final EditText senderMessageEditText = (EditText) 
+            mSenderActivity.findViewById(R.id.message_input_edit_text);
+
+    // Set up an ActivityMonitor
+    ...
+
+    // Send string input value
+    ...
+
+    // Validate that ReceiverActivity is started
+    ...
+
+    // Validate that ReceiverActivity has the correct data
+    ...
+
+    // Remove the ActivityMonitor
+    ...
+}
+</pre>
+<p>The test waits for an {@link android.app.Activity} that matches this monitor,
+otherwise returns null after a timeout elapses. If {@code ReceiverActivity} was
+started, the {@link android.app.Instrumentation.ActivityMonitor ActivityMonitor}
+that you set
+up earlier receives a hit. You can use the assertion methods to verify that
+the {@code ReceiverActivity} is indeed started, and that the hit count on the
+{@link android.app.Instrumentation.ActivityMonitor ActivityMonitor} incremented
+as expected.</p>
+
+<h2 id="activitymonitor">Set up an ActivityMonitor</h2>
+<p>To monitor a single {@link android.app.Activity} in your application, you
+can register an {@link android.app.Instrumentation.ActivityMonitor ActivityMonitor}.
+The {@link android.app.Instrumentation.ActivityMonitor ActivityMonitor} is
+notified by the system whenever an {@link android.app.Activity} that matches your criteria is started.
+If a match is found, the monitor’s hit count is updated.</p>
+<p>Generally, to use an
+{@link android.app.Instrumentation.ActivityMonitor ActivityMonitor}, you should:</p>
+<ol>
+<li>Retrieve the {@link android.app.Instrumentation} instance for your test
+case by using the
+{@link android.test.InstrumentationTestCase#getInstrumentation()} method.</li>
+<li>Add an instance of {@link android.app.Instrumentation.ActivityMonitor} to
+the current instrumentation using one of the {@link android.app.Instrumentation}
+{@code addMonitor()} methods. The match criteria can be specified as an
+{@link android.content.IntentFilter} or a class name string.</li>
+<li>Wait for the {@link android.app.Activity} to start.</li>
+<li>Verify that the monitor hits were incremented.</li>
+<li>Remove the monitor.</li>
+</ol>
+<p>For example:</p>
+<pre>
+// Set up an ActivityMonitor
+ActivityMonitor receiverActivityMonitor =
+        getInstrumentation().addMonitor(ReceiverActivity.class.getName(),
+        null, false);
+
+// Validate that ReceiverActivity is started
+TouchUtils.clickView(this, sendToReceiverButton);
+ReceiverActivity receiverActivity = (ReceiverActivity) 
+        receiverActivityMonitor.waitForActivityWithTimeout(TIMEOUT_IN_MS);
+assertNotNull("ReceiverActivity is null", receiverActivity);
+assertEquals("Monitor for ReceiverActivity has not been called",
+        1, receiverActivityMonitor.getHits());
+assertEquals("Activity is of wrong type",
+        ReceiverActivity.class, receiverActivity.getClass());
+
+// Remove the ActivityMonitor
+getInstrumentation().removeMonitor(receiverActivityMonitor);
+</pre>
+
+<h2 id="keyinput">Send Keyboard Input Using Instrumentation</h2>
+<p>If your {@link android.app.Activity} has an {@link android.widget.EditText}
+field, you might want to test that users can enter values into the
+{@link android.widget.EditText} object.</p>
+<p>Generally, to send a string input value to an {@link android.widget.EditText}
+object in {@link android.test.ActivityInstrumentationTestCase2}, you should:</p>
+<ol>
+<li>Use the {@link android.app.Instrumentation#runOnMainSync(java.lang.Runnable) runOnMainSync()}
+method to run the {@link android.view.View#requestFocus()} call synchronously
+in a loop. This way, the UI thread is blocked until focus is received.</li>
+<li>Call {@link android.app.Instrumentation#waitForIdleSync()} method to wait
+for the main thread to become idle (that is, have no more events to process).</li>
+<li>Send a text string to the {@link android.widget.EditText} by calling
+{@link android.app.Instrumentation#sendStringSync(java.lang.String)
+sendStringSync()} and pass your input string as the parameter.</p>
+</ol>
+<p>For example:</p>
+<pre>
+// Send string input value
+getInstrumentation().runOnMainSync(new Runnable() {
+    &#64;Override
+    public void run() {
+        senderMessageEditText.requestFocus();
+    }
+});
+getInstrumentation().waitForIdleSync();
+getInstrumentation().sendStringSync("Hello Android!");
+getInstrumentation().waitForIdleSync();
+</pre>
+
+
+
+
+
+
+
+
diff --git a/docs/html/training/activity-testing/activity-ui-testing.jd b/docs/html/training/activity-testing/activity-ui-testing.jd
new file mode 100644
index 0000000..644f3ca
--- /dev/null
+++ b/docs/html/training/activity-testing/activity-ui-testing.jd
@@ -0,0 +1,216 @@
+page.title=Testing UI Components
+trainingnavtop=true
+
+@jd:body
+
+<!-- This is the training bar -->
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>This lesson teaches you to</h2>
+<ol>
+  <li><a href="#testcase">Create a Test Case for UI Testing with Instrumentation</a>
+  <li><a href="#test_method">Add Test Methods to Verify UI Behavior</a>
+     <ol>
+     <li><a href="#verify_button_display">Verify Button Layout Parameters</a></li>
+     <li><a href="#verify_TextView">Verify TextView Layout Parameters</a></li>
+     <li><a href="#verify_button_behavior">Verify Button Behavior</a></li>
+     </ol>
+  </li>
+  <li><a href="#annotations">Apply Test Annotations</a></li>
+</ol>
+
+<h2>Try it out</h2>
+<div class="download-box">
+ <a href="http://developer.android.com/shareables/training/AndroidTestingFun.zip"
+class="button">Download the demo</a>
+ <p class="filename">AndroidTestingFun.zip</p>
+</div>
+
+</div>
+</div>
+
+<p>Typically, your {@link android.app.Activity} includes user interface
+components (such as buttons, editable text fields, checkboxes, and pickers) to
+allow users to interact with your Android application. This lesson shows how
+you can test an {@link android.app.Activity} with a simple push-button UI. You
+can use the same general steps to test other, more sophisticated types of UI
+components.</p>
+
+<p class="note"><strong>Note:</strong> The type of UI testing in this lesson is
+called <em>white-box testing</em> because you have the
+source code for the application that you want to test. The Android
+<a href="{@docRoot}tools/testing/testing_android.html#Instrumentation">Instrumentation</a>
+framework is suitable for creating white-box tests for UI components within an
+application. An alternative type of UI testing is <em>black-box testing</em>,
+where you may not have access to the application source. This type of testing
+is useful when you want to test how your app interacts with other apps or with
+the system. Black-box testing is not covered in this training. To learn more
+about how to perform black-box testing on your Android apps, see the
+<a href="{@docRoot}tools/testing/testing_ui.html">UI Testing guide</a>.
+<p>For a complete test case example, take a look at
+{@code ClickFunActivityTest.java} in the sample app.</p>
+
+<h2 id="testcase">Create a Test Case for UI Testing with Instrumentation</h2>
+<p>When testing an {@link android.app.Activity} that has a user interface (UI),
+the {@link android.app.Activity} under test runs in the UI thread. However, the
+test application itself runs in a separate thread in the same process as the
+application under test. This means that your test app can reference objects
+from the UI thread, but if it attempts to change properties on those objects or
+send events to the UI thread, you will usually get a {@code WrongThreadException}
+error.</p>
+<p>To safely inject {@link android.content.Intent} objects into your
+{@link android.app.Activity} or run test methods on the UI thread, you can
+extend your test class to use {@link android.test.ActivityInstrumentationTestCase2}.
+To learn more about how to run test methods on the UI thread, see
+<a href="{@docRoot}tools/testing/activity_testing.html#RunOnUIThread">Testing
+on the UI thread</a>.</p>
+
+<h3 id="fixture">Set Up Your Test Fixture</h3>
+<p>When setting up the test fixture for UI testing, you should specify the
+<a href="{@docRoot}guide/topics/ui/ui-events.html#TouchMode">touch mode</a>
+in your {@link junit.framework.TestCase#setUp()} method. Setting the touch mode
+to {@code true} prevents the UI control from taking focus when you click it
+programmatically in the test method later (for example, a button UI will just
+fire its on-click listener). Make sure that you call
+{@link android.test.ActivityInstrumentationTestCase2#setActivityInitialTouchMode(boolean) setActivityInitialTouchMode()}
+before calling {@link android.test.ActivityInstrumentationTestCase2#getActivity()}.
+</p>
+<p>For example:</ap>
+<pre>
+public class ClickFunActivityTest
+        extends ActivityInstrumentationTestCase2<ClickFunActivity> {
+    ...
+    &#64;Override
+    protected void setUp() throws Exception {
+        super.setUp();
+
+        setActivityInitialTouchMode(true);
+
+        mClickFunActivity = getActivity();
+        mClickMeButton = (Button) 
+                mClickFunActivity
+                .findViewById(R.id.launch_next_activity_button);
+        mInfoTextView = (TextView) 
+                mClickFunActivity.findViewById(R.id.info_text_view);
+    }
+}
+</pre>
+
+<h2 id="test_methods">Add Test Methods to Validate UI Behavior</h2>
+<p id="test_goals">Your UI testing goals might include:</p>
+<ul>
+<li>Verifying that a button is displayed with the correct layout when the
+{@link android.app.Activity} is launched.</li>
+<li>Verifying that a {@link android.widget.TextView} is initially hidden.</li>
+<li>Verifying that a {@link android.widget.TextView} displays the expected string
+when a button is pushed.</li>
+</ul>
+<p>The following section demonstrates how you can implement test methods
+to perform these verifications.</p>
+
+<h3 id="verify_button_display">Verify Button Layout Parameters</h3>
+<p>You might add a test method like this to verify that a button is displayed
+correctly in your {@link android.app.Activity}:</p>
+<pre>
+&#64;MediumTest
+public void testClickMeButton_layout() {
+    final View decorView = mClickFunActivity.getWindow().getDecorView();
+
+    ViewAsserts.assertOnScreen(decorView, mClickMeButton);
+
+    final ViewGroup.LayoutParams layoutParams =
+            mClickMeButton.getLayoutParams();
+    assertNotNull(layoutParams);
+    assertEquals(layoutParams.width, WindowManager.LayoutParams.MATCH_PARENT);
+    assertEquals(layoutParams.height, WindowManager.LayoutParams.WRAP_CONTENT);
+}
+</pre>
+
+<p>In the {@link android.test.ViewAsserts#assertOnScreen(android.view.View,android.view.View) assertOnScreen()}
+method call, you should pass in the root view and the view that you are
+expecting to be present on the screen. If the expected view is not found in the
+root view, the assertion method throws an {@link junit.framework.AssertionFailedError}
+exception, otherwise the test passes.</p>
+<p>You can also verify that the layout of a {@link android.widget.Button} is
+correct by getting a reference to its {@link android.view.ViewGroup.LayoutParams}
+object, then call assertion methods to verify that the
+{@link android.widget.Button} object's width and height attributes match the
+expected values.</p>
+<p>The {@code &#64;MediumTest} annotation specifies how the test is categorized,
+relative to its absolute execution time. To learn more about using test size
+annotations, see <a href="#annotations">Apply Test Annotations</a>.</p>
+
+<h3 id="verify_TextView">Verify TextView Layout Parameters</h3>
+<p>You might add a test method like this to verify that a
+{@link android.widget.TextView} initially appears hidden in
+your {@link android.app.Activity}:</p>
+<pre>
+&#64;MediumTest
+public void testInfoTextView_layout() {
+    final View decorView = mClickFunActivity.getWindow().getDecorView();
+    ViewAsserts.assertOnScreen(decorView, mInfoTextView);
+    assertTrue(View.GONE == mInfoTextView.getVisibility());
+}
+</pre>
+<p>You can call {@link android.view.Window#getDecorView()} to get a reference
+to the decor view for the {@link android.app.Activity}. The decor view is the
+top-level ViewGroup ({@link android.widget.FrameLayout}) view in the layout
+hierarchy.</p>
+
+<h3 id="verify_button_behavior">Verify Button Behavior</h3>
+<p>You can use a test method like this to verify that a
+{@link android.widget.TextView} becomes visible when a
+{@link android.widget.Button} is pushed:</p>
+
+<pre>
+&#64;MediumTest
+public void testClickMeButton_clickButtonAndExpectInfoText() {
+    String expectedInfoText = mClickFunActivity.getString(R.string.info_text);
+    TouchUtils.clickView(this, mClickMeButton);
+    assertTrue(View.VISIBLE == mInfoTextView.getVisibility());
+    assertEquals(expectedInfoText, mInfoTextView.getText());
+}
+</pre>
+
+<p>To programmatically click a {@link android.widget.Button} in your
+test, call {@link android.test.TouchUtils#clickView(android.test.InstrumentationTestCase,android.view.View) clickView()}.
+You must pass in a reference to the test case that is being run and a reference
+to the {@link android.widget.Button} to manipulate.</p>
+
+<p class="note"><strong>Note: </strong>The {@link android.test.TouchUtils}
+helper class provides convenience methods for simulating touch interactions
+with your application. You can use these methods to simulate clicking, tapping,
+and dragging of Views or the application screen.</p>
+<p class="caution"><strong>Caution: </strong>The {@link android.test.TouchUtils}
+methods are designed to send events to the UI thread safely from the test thread.
+You should not run {@link android.test.TouchUtils} directly in the UI thread or
+any test method annotated with {@code &#64;UIThread}. Doing so might
+raise the {@code WrongThreadException}.</p>
+
+<h2 id="annotations">Apply Test Annotations</h2>
+<p>The following annotations can be applied to indicate the size of a test
+method:</p>
+<dl>
+<dt>{@link
+android.test.suitebuilder.annotation.SmallTest &#64;SmallTest}</dt>
+<dd>Marks a test that should run as part of the small tests.</dd>
+<dt>{@link
+android.test.suitebuilder.annotation.MediumTest &#64;MediumTest}</dt>
+<dd>Marks a test that should run as part of the medium tests.</dd>
+<dt>{@link android.test.suitebuilder.annotation.LargeTest &#64;LargeTest}</dt>
+<dd>Marks a test that should run as part of the large tests.</dd>
+</dl>
+<p>Typically, a short running test that take only a few milliseconds should be
+marked as a {@code &#64;SmallTest}. Longer running tests (100 milliseconds or
+more) are usually marked as {@code &#64;MediumTest}s or {@code &#64;LargeTest}s,
+depending on whether the test accesses resources on the local system only or
+remote resources over a network. For guidance on using test size annotations,
+see this <a href="https://plus.sandbox.google.com/+AndroidDevelopers/posts/TPy1EeSaSg8">Android Tools Protip</a>.</p>
+<p>You can mark up your test methods with other test annotations to control
+how the tests are organized and run. For more information on other annotations,
+see the {@link java.lang.annotation.Annotation} class reference.</p>
+
+
+
+
diff --git a/docs/html/training/activity-testing/activity-unit-testing.jd b/docs/html/training/activity-testing/activity-unit-testing.jd
new file mode 100644
index 0000000..74dcda9
--- /dev/null
+++ b/docs/html/training/activity-testing/activity-unit-testing.jd
@@ -0,0 +1,134 @@
+page.title=Creating Unit Tests
+trainingnavtop=true
+@jd:body
+
+<!-- This is the training bar -->
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>This lesson teaches you to</h2>
+<ol>
+  <li><a href="#testcase">Create a Test Case for Activity Unit Testing</a>
+  <li><a href="#test_method">Validate Launch of Another Activity</a>
+</ol>
+
+<h2>Try it out</h2>
+<div class="download-box">
+ <a href="http://developer.android.com/shareables/training/AndroidTestingFun.zip"
+class="button">Download the demo</a>
+ <p class="filename">AndroidTestingFun.zip</p>
+</div>
+
+</div>
+</div>
+
+<p>An {@link android.app.Activity} unit test is an excellent way to quickly
+verify the state of an {@link android.app.Activity} and its interactions with
+other components in isolation (that is, disconnected from the rest of the
+system). A unit test generally tests the smallest possible unit of code
+(which could be a method, class, or component), without dependencies on system
+or network resources. For example, you can write a unit test to check
+that an {@link android.app.Activity} has the correct layout or that it
+triggers an {@link android.content.Intent} object correctly.</p>
+<p>Unit tests are generally not suitable for testing complex UI interaction
+events with the system. Instead, you should use
+the {@link android.test.ActivityInstrumentationTestCase2} class, as described
+in <a href="activity-ui-testing.html">Testing UI Components</a>.</p>
+<p>This lesson shows how you can write a unit test to verify that an
+{@link android.content.Intent} is triggered to launch another
+{@link android.app.Activity}.
+Since the test runs in an isolated environment, the
+{@link android.content.Intent}
+is not actually sent to the Android system, but you can inspect that the
+{@link android.content.Intent} object's payload data is accurate.</p>
+<p>For a complete test case example, take a look at
+{@code LaunchActivityTest.java} in the sample app.</p>
+
+<p class="note"><strong>Note: </strong>To test against system or external
+dependencies, you can use mock objects from a mocking
+framework and inject them into your unit tests. To learn more about the mocking
+framework provided by Android, see
+<a href="{@docRoot}tools/testing/testing_android.html#MockObjectClasses}">Mock
+Object Classes</a>.</p>
+
+<h2 id="testcase">Create a Test Case for Activity Unit Testing</h2>
+<p>The {@link android.test.ActivityUnitTestCase} class provides support for
+isolated testing of a single {@link android.app.Activity}. To create a unit
+test for your {@link android.app.Activity}, your test class should extend
+{@link android.test.ActivityUnitTestCase}.</p>
+
+<p>The {@link android.app.Activity} in an {@link android.test.ActivityUnitTestCase}
+is not automatically started by Android Instrumentation. To start the
+{@link android.app.Activity} in isolation, you need to explicitly call the
+{@link android.test.ActivityUnitTestCase#startActivity(android.content.Intent, android.os.Bundle, java.lang.Object) startActivity()}
+method, and pass in the {@link android.content.Intent} to
+launch your target {@link android.app.Activity}.</p>
+
+<p>For example:</p>
+<pre>
+public class LaunchActivityTest
+        extends ActivityUnitTestCase&lt;LaunchActivity&gt; {
+    ...
+
+    &#64;Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mLaunchIntent = new Intent(getInstrumentation()
+                .getTargetContext(), LaunchActivity.class);
+        startActivity(mLaunchIntent, null, null);
+        final Button launchNextButton =
+                (Button) getActivity()
+                .findViewById(R.id.launch_next_activity_button);
+    }
+}
+</pre>
+
+<h2 id="test_method">Validate Launch of Another Activity</h2>
+<p id="test_goals">Your unit testing goals might include:</p>
+<ul>
+<li>Verifying that {@code LaunchActivity} fires an
+{@link android.content.Intent} when a button is pushed clicked.</li>
+<li>Verifying that the launched {@link android.content.Intent} contains the
+correct payload data.</li>
+</ul>
+
+<p>To verify if an {@link android.content.Intent} was triggered
+following the {@link android.widget.Button} click, you can use the
+{@link android.test.ActivityUnitTestCase#getStartedActivityIntent()} method.
+By using assertion methods, you can verify that the returned
+{@link android.content.Intent} is not null, and that it contains the expected
+string value to launch the next {@link android.app.Activity}. If both assertions
+evaluate to {@code true}, you've successfully verified that the
+{@link android.content.Intent} was correctly sent by your
+{@link android.app.Activity}.</p>
+
+<p>You might implement your test method like this:</p>
+<pre>
+&#64;MediumTest
+public void testNextActivityWasLaunchedWithIntent() {
+    startActivity(mLaunchIntent, null, null);
+    final Button launchNextButton =
+            (Button) getActivity()
+            .findViewById(R.id.launch_next_activity_button);
+    launchNextButton.performClick();
+
+    final Intent launchIntent = getStartedActivityIntent();
+    assertNotNull("Intent was null", launchIntent);
+    assertTrue(isFinishCalled());
+
+    final String payload =
+            launchIntent.getStringExtra(NextActivity.EXTRAS_PAYLOAD_KEY);
+    assertEquals("Payload is empty", LaunchActivity.STRING_PAYLOAD, payload);
+}
+</pre>
+<p>Because {@code LaunchActivity} runs in isolation, you cannot use the
+{@link android.test.TouchUtils} library to manipulate UI controls. To directly
+click a {@link android.widget.Button}, you can call the
+{@link android.view.View#performClick()} method instead.</p>
+
+
+
+
+
+
+
diff --git a/docs/html/training/activity-testing/index.jd b/docs/html/training/activity-testing/index.jd
new file mode 100644
index 0000000..ddede71
--- /dev/null
+++ b/docs/html/training/activity-testing/index.jd
@@ -0,0 +1,68 @@
+page.title=Testing Your Android Activity
+page.tags="testing"
+
+trainingnavtop=true
+startpage=true
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<!-- Required platform, tools, add-ons, devices, knowledge, etc. -->
+<h2>Dependencies and prerequisites</h2>
+<ul>
+  <li>Android 2.2 (API Level 8) or higher.</li>
+</ul>
+
+<h2>You Should Also Read</h2>
+<ul>
+<li><a href="{@docRoot}tools/testing/index.html">Testing
+(Developer's Guide)</a></li>
+</ul>
+
+</div>
+</div>
+
+<p>You should be writing and running tests as part of your Android application
+development cycle. Well-written tests can help you to catch bugs early in
+development and give you confidence in your code.</p>
+
+<p>A <em>test case</em> defines a set of objects and methods to run multiple
+tests independently from each other. Test cases can be organized into
+<em>test suites</em> and run programmatically, in a repeatable manner, with
+a <em>test runner</em> provided by a testing framework.</p>
+
+<p>The lessons in this class teaches you how to use the Android's custom
+testing framework that is based on the popular JUnit framework. You can
+write test cases to verify specific behavior in your application, and check for
+consistency across different Android devices. Your test cases also serve as a
+form of internal code documentation by describing the expected behavior of
+app components.</p>
+
+<h2>Lessons</h2>
+
+<!-- Create a list of the lessons in this class along with a short description
+of each lesson. These should be short and to the point. It should be clear from
+reading the summary whether someone will want to jump to a lesson or not.-->
+
+<dl>
+  <dt><b><a href="preparing-activity-testing.html">Setting Up Your Test
+Environment</a></b></dt>
+    <dd>Learn how to create your test project.</dd>
+  <dt><b><a href="activity-basic-testing.html">Creating and Running a Test 
+Case</a></b></dt>
+    <dd>Learn how to write test cases to verify the
+expected properties of your {@link android.app.Activity}, and run the test
+cases with the {@code Instrumentation} test runner provided by the Android
+framework.</dd>
+  <dt><b><a href="activity-ui-testing.html">Testing UI Components</a></b></dt>
+    <dd>Learn how to test the behavior of specific UI
+components in your {@link android.app.Activity}.</dd>
+  <dt><b><a href="activity-unit-testing.html">Creating Unit Tests</a></b></dt>
+    <dd>Learn how to how to perform unit testing to
+verify the behavior of an Activity in isolation.</dd>
+  <dt><b><a href="activity-functional-testing.html">Creating Functional Tests</a></b></dt>
+    <dd>Learn how to perform functional testing to
+verify the interaction of multiple Activities.</dd>
+
diff --git a/docs/html/training/activity-testing/preparing-activity-testing.jd b/docs/html/training/activity-testing/preparing-activity-testing.jd
new file mode 100644
index 0000000..c43c9ed
--- /dev/null
+++ b/docs/html/training/activity-testing/preparing-activity-testing.jd
@@ -0,0 +1,95 @@
+page.title=Setting Up Your Test Environment
+trainingnavtop=true
+
+@jd:body
+
+<!-- This is the training bar -->
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>This lesson teaches you to</h2>
+<ol>
+  <li><a href="#eclipse">Set Up Eclipse for Testing</a></li>
+  <li><a href="#cmdline">Set Up the Command Line Interface for Testing</a></li>
+</ol>
+
+<h2>You should also read</h2>
+<ul>
+<li><a href="{@docRoot}sdk/index.html">Getting the SDK Bundle</a></li>
+<li><a href="{@docRoot}tools/testing/testing_eclipse.html">Testing from Eclipse
+with ADT</a></li>
+<li><a href="{@docRoot}tools/testing/testing_otheride.html">Testing from Other
+IDEs</a></li>
+</ul>
+
+<h2>Try it out</h2>
+<div class="download-box">
+ <a href="http://developer.android.com/shareables/training/AndroidTestingFun.zip"
+class="button">Download the demo</a>
+ <p class="filename">AndroidTestingFun.zip</p>
+</div>
+
+</div>
+</div>
+
+<p>Before you start writing and running your tests, you should set up your test
+development environment. This lesson teaches you how to set up the Eclipse
+IDE to build and run tests, and how to
+build and run tests with the Gradle framework by using the command line
+interface.</p>
+
+<p class="note"><strong>Note:</strong> To help you get started, the lessons are
+based on Eclipse with the ADT plugin. However, for your own test development, you
+are free to use the IDE of your choice or the command-line.</p>
+
+<h2 id="eclipse">Set Up Eclipse for Testing</h2>
+<p>Eclipse with the Android Developer Tools (ADT) plugin provides an integrated
+development environment for you to create, build, and run Android application
+test cases from a graphical user interface (GUI). A convenient feature that
+Eclipse provides is the ability to auto-generate a new test project that
+corresponds with your Android application project</a>.
+
+<p>To set up your test environment in Eclipse:</p>
+
+<ol>
+<li><a href="{@docRoot}sdk/installing/bundle.html">Download and install the
+Eclipse ADT plugin</a>, if you haven’t installed it yet.</li>
+<li>Import or create the Android application project that you want to test
+against.</li>
+<li>Generate a test project that corresponds to the application project under
+test. To generate a test project for the app project that you imported:</p>
+   <ol type="a">
+   <li>In the Package Explorer, right-click on your app project, then
+select <strong>Android Tools</strong> &gt; <strong>New Test Project</strong>.</li>
+   <li>In the New Android Test Project wizard, set the property
+values for your test project then click <strong>Finish</strong>.</li>
+   </ol>
+</li>
+</ol>
+<p>You should now be able to create, build, and run test
+cases from your Eclipse environment. To learn how to perform these tasks in
+Eclipse, proceed to <a href="activity-basic-testing.html">Creating and Running 
+a Test Case</a>.</p>
+
+<h2 id="cmdline">Set Up the Command Line Interface for Testing</h2>
+<p>If you are using Gradle version 1.6 or higher as your build environment, you
+can build and run your Android application tests from the command line by using
+the Gradle Wrapper. Make sure that in your {@code gradle.build} file, the
+<a href={@docRoot}guide/topics/manifest/uses-sdk-element.html#min>minSdkVersion</a>
+attribute in the {@code defaultConfig} section is set to 8 or higher. You can
+refer to the sample {@code gradle.build} file that is
+included in the download bundle for this training class.</p>
+<p>To run your tests with the Gradle Wrapper:</p>
+<ol>
+   <li>Connect a physical Android device to your machine or launch the Android
+Emulator.</li>
+   <li>Run the following command from your project directory:
+      <pre>./gradlew build connectedCheck</pre>
+   </li>
+</ol>
+<p>To learn more about using Gradle for Android testing, see the
+<a href="//tools.android.com/tech-docs/new-build-system/user-guide#TOC-Testing">Gradle Plugin User Guide</a>.</p>
+<p>To learn more about using command line tools other than Gradle for test
+development, see
+<a href="{@docRoot}tools/testing/testing_otheride.html">Testing from Other IDEs</a>.</p>
+
diff --git a/docs/html/training/testing.jd b/docs/html/training/testing.jd
new file mode 100644
index 0000000..c55370d
--- /dev/null
+++ b/docs/html/training/testing.jd
@@ -0,0 +1,7 @@
+page.title=Best Practices for Testing
+page.trainingcourse=true
+
+@jd:body
+
+<p>These classes and articles provide information about how to
+test your Android application.</p>
diff --git a/docs/html/training/training_toc.cs b/docs/html/training/training_toc.cs
index 40c170e..b884620 100644
--- a/docs/html/training/training_toc.cs
+++ b/docs/html/training/training_toc.cs
@@ -1205,6 +1205,45 @@
   </li>
   <!-- End security and user info -->
 
+  <li class="nav-section">
+    <div class="nav-section-header">
+      <a href="<?cs var:toroot ?>training/testing.html">
+      <span class="small">Best Practices for</span><br/>
+              Testing
+      </a>
+    </div>
+    <ul>
+      <li class="nav-section">
+      <div class="nav-section-header"><a href="<?cs var:toroot ?>training/activity-testing/index.html"
+         description="How to test Activities in your Android applications.">
+            Testing Your Activity
+          </a></div>
+        <ul>
+          <li><a href="<?cs var:toroot ?>training/activity-testing/preparing-activity-testing.html">
+            <span class="en">Setting Up Your Test Environment</span>
+          </a>
+          </li>
+          <li><a href="<?cs var:toroot ?>training/activity-testing/activity-basic-testing.html">
+            <span class="en">Creating and Running a Test Case</span>
+          </a>
+          </li>
+          <li><a href="<?cs var:toroot ?>training/activity-testing/activity-ui-testing.html">
+            <span class="en">Testing UI Components</span>
+          </a>
+          </li>
+          <li><a href="<?cs var:toroot ?>training/activity-testing/activity-unit-testing.html">
+            <span class="en">Creating Unit Tests</span>
+          </a>
+          </li>
+          <li><a href="<?cs var:toroot ?>training/activity-testing/activity-functional-testing.html">
+            <span class="en">Creating Functional Tests</span>
+          </a>
+          </li>
+        </ul>
+      </li>
+    </ul>
+  </li>
+  <!-- End best Testing -->
 
   <li class="nav-section">
     <div class="nav-section-header">
diff --git a/graphics/java/android/graphics/BitmapFactory.java b/graphics/java/android/graphics/BitmapFactory.java
index 1c426fd..1721bee 100644
--- a/graphics/java/android/graphics/BitmapFactory.java
+++ b/graphics/java/android/graphics/BitmapFactory.java
@@ -23,7 +23,6 @@
 import android.util.Log;
 import android.util.TypedValue;
 
-import java.io.BufferedInputStream;
 import java.io.FileDescriptor;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -545,28 +544,28 @@
             return null;
         }
 
-        Bitmap bm;
+        Bitmap bm = null;
 
         Trace.traceBegin(Trace.TRACE_TAG_GRAPHICS, "decodeBitmap");
         try {
-            // we need mark/reset to work properly
-            if (!is.markSupported()) {
-                is = new BufferedInputStream(is, DECODE_BUFFER_SIZE);
-            }
-
-            // so we can call reset() if a given codec gives up after reading up to
-            // this many bytes. FIXME: need to find out from the codecs what this
-            // value should be.
-            is.mark(1024);
-
+            boolean decodeGenericStream = true;
             if (is instanceof AssetManager.AssetInputStream) {
                 final int asset = ((AssetManager.AssetInputStream) is).getAssetInt();
                 bm = nativeDecodeAsset(asset, outPadding, opts);
-            } else {
-                // pass some temp storage down to the native code. 1024 is made up,
-                // but should be large enough to avoid too many small calls back
-                // into is.read(...) This number is not related to the value passed
-                // to mark(...) above.
+                // Do not follow the normal case.
+                decodeGenericStream = false;
+            } else if (is instanceof FileInputStream) {
+                try {
+                    FileDescriptor fd = ((FileInputStream) is).getFD();
+                    // decodeFileDescriptor will take care of throwing the IAE and
+                    // calling setDensityFromOptions.
+                    return decodeFileDescriptor(fd, outPadding, opts);
+                } catch (IOException e) {
+                    // Fall through to nativeDecodeStream.
+                }
+            }
+
+            if (decodeGenericStream) {
                 byte [] tempStorage = null;
                 if (opts != null) tempStorage = opts.inTempStorage;
                 if (tempStorage == null) tempStorage = new byte[DECODE_BUFFER_SIZE];
@@ -610,26 +609,41 @@
      *                   no bitmap is returned (null) then padding is
      *                   unchanged.
      * @param opts null-ok; Options that control downsampling and whether the
-     *             image should be completely decoded, or just is size returned.
+     *             image should be completely decoded, or just its size returned.
      * @return the decoded bitmap, or null
      */
     public static Bitmap decodeFileDescriptor(FileDescriptor fd, Rect outPadding, Options opts) {
-        if (nativeIsSeekable(fd)) {
-            Bitmap bm = nativeDecodeFileDescriptor(fd, outPadding, opts);
+        Bitmap bm;
+
+        Trace.traceBegin(Trace.TRACE_TAG_GRAPHICS, "decodeFileDescriptor");
+        try {
+            if (nativeIsSeekable(fd)) {
+                bm = nativeDecodeFileDescriptor(fd, outPadding, opts);
+            } else {
+                FileInputStream fis = new FileInputStream(fd);
+                // FIXME: If nativeDecodeStream grabbed the pointer to tempStorage
+                // from Options, this code would not need to be duplicated.
+                byte [] tempStorage = null;
+                if (opts != null) tempStorage = opts.inTempStorage;
+                if (tempStorage == null) tempStorage = new byte[DECODE_BUFFER_SIZE];
+                try {
+                    bm = nativeDecodeStream(fis, tempStorage, outPadding, opts);
+                } finally {
+                    try {
+                        fis.close();
+                    } catch (Throwable t) {/* ignore */}
+                }
+            }
+
             if (bm == null && opts != null && opts.inBitmap != null) {
                 throw new IllegalArgumentException("Problem decoding into existing bitmap");
             }
-            return bm;
-        } else {
-            FileInputStream fis = new FileInputStream(fd);
-            try {
-                return decodeStream(fis, outPadding, opts);
-            } finally {
-                try {
-                    fis.close();
-                } catch (Throwable t) {/* ignore */}
-            }
+
+            setDensityFromOptions(bm, opts);
+        } finally {
+            Trace.traceEnd(Trace.TRACE_TAG_GRAPHICS);
         }
+        return bm;
     }
 
     /**
diff --git a/graphics/java/android/graphics/BitmapRegionDecoder.java b/graphics/java/android/graphics/BitmapRegionDecoder.java
index b38d107..3524b25 100644
--- a/graphics/java/android/graphics/BitmapRegionDecoder.java
+++ b/graphics/java/android/graphics/BitmapRegionDecoder.java
@@ -17,7 +17,6 @@
 
 import android.content.res.AssetManager;
 
-import java.io.BufferedInputStream;
 import java.io.FileDescriptor;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -108,12 +107,6 @@
      */
     public static BitmapRegionDecoder newInstance(InputStream is,
             boolean isShareable) throws IOException {
-        // we need mark/reset to work properly in JNI
-
-        if (!is.markSupported()) {
-            is = new BufferedInputStream(is, 16 * 1024);
-        }
-
         if (is instanceof AssetManager.AssetInputStream) {
             return nativeNewInstance(
                     ((AssetManager.AssetInputStream) is).getAssetInt(),
diff --git a/graphics/java/android/graphics/drawable/GradientDrawable.java b/graphics/java/android/graphics/drawable/GradientDrawable.java
index d226c8c..b340777 100644
--- a/graphics/java/android/graphics/drawable/GradientDrawable.java
+++ b/graphics/java/android/graphics/drawable/GradientDrawable.java
@@ -19,6 +19,7 @@
 import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.graphics.Canvas;
+import android.graphics.Color;
 import android.graphics.ColorFilter;
 import android.graphics.DashPathEffect;
 import android.graphics.LinearGradient;
@@ -747,9 +748,6 @@
 
                     mFillPaint.setShader(new LinearGradient(x0, y0, x1, y1,
                             colors, st.mPositions, Shader.TileMode.CLAMP));
-                    if (!mGradientState.mHasSolidColor) {
-                        mFillPaint.setColor(mAlpha << 24);
-                    }
                 } else if (st.mGradient == RADIAL_GRADIENT) {
                     x0 = r.left + (r.right - r.left) * st.mCenterX;
                     y0 = r.top + (r.bottom - r.top) * st.mCenterY;
@@ -759,9 +757,6 @@
                     mFillPaint.setShader(new RadialGradient(x0, y0,
                             level * st.mGradientRadius, colors, null,
                             Shader.TileMode.CLAMP));
-                    if (!mGradientState.mHasSolidColor) {
-                        mFillPaint.setColor(mAlpha << 24);
-                    }
                 } else if (st.mGradient == SWEEP_GRADIENT) {
                     x0 = r.left + (r.right - r.left) * st.mCenterX;
                     y0 = r.top + (r.bottom - r.top) * st.mCenterY;
@@ -792,9 +787,12 @@
 
                     }
                     mFillPaint.setShader(new SweepGradient(x0, y0, tempColors, tempPositions));
-                    if (!mGradientState.mHasSolidColor) {
-                        mFillPaint.setColor(mAlpha << 24);
-                    }
+                }
+
+                // If we don't have a solid color, the alpha channel must be
+                // maxed out so that alpha modulation works correctly.
+                if (!st.mHasSolidColor) {
+                    mFillPaint.setColor(Color.BLACK);
                 }
             }
         }
@@ -1281,6 +1279,9 @@
             // the app is stroking the shape, set the color to the default
             // value of state.mSolidColor
             mFillPaint.setColor(0);
+        } else {
+            // Otherwise, make sure the fill alpha is maxed out.
+            mFillPaint.setColor(Color.BLACK);
         }
         mPadding = state.mPadding;
         if (state.mStrokeWidth >= 0) {
diff --git a/graphics/java/android/renderscript/Allocation.java b/graphics/java/android/renderscript/Allocation.java
index 7d05a74..ca72c25 100644
--- a/graphics/java/android/renderscript/Allocation.java
+++ b/graphics/java/android/renderscript/Allocation.java
@@ -80,7 +80,7 @@
     int mCurrentCount;
     static HashMap<Integer, Allocation> mAllocationMap =
             new HashMap<Integer, Allocation>();
-    IoInputNotifier mBufferNotifier;
+    OnBufferAvailableListener mBufferNotifier;
 
     /**
      * The usage of the Allocation.  These signal to RenderScript where to place
@@ -1838,26 +1838,22 @@
     }
 
     /**
-     * @hide
-     *
      * Interface to handle notification when new buffers are available via
      * {@link #USAGE_IO_INPUT}. An application will receive one notification
      * when a buffer is available. Additional buffers will not trigger new
      * notifications until a buffer is processed.
      */
-    public interface IoInputNotifier {
+    public interface OnBufferAvailableListener {
         public void onBufferAvailable(Allocation a);
     }
 
     /**
-     * @hide
-     *
      * Set a notification handler for {@link #USAGE_IO_INPUT}.
      *
-     * @param callback instance of the IoInputNotifier class to be called
-     *                 when buffer arrive.
+     * @param callback instance of the OnBufferAvailableListener
+     *                 class to be called when buffer arrive.
      */
-    public void setIoInputNotificationHandler(IoInputNotifier callback) {
+    public void setOnBufferAvailableListener(OnBufferAvailableListener callback) {
         synchronized(mAllocationMap) {
             mAllocationMap.put(new Integer(getID(mRS)), this);
             mBufferNotifier = callback;
diff --git a/graphics/java/android/renderscript/ScriptIntrinsicColorMatrix.java b/graphics/java/android/renderscript/ScriptIntrinsicColorMatrix.java
index 6881627..32c3d15 100644
--- a/graphics/java/android/renderscript/ScriptIntrinsicColorMatrix.java
+++ b/graphics/java/android/renderscript/ScriptIntrinsicColorMatrix.java
@@ -56,8 +56,12 @@
      *          this parameter is ignored. The Element type check is
      *          performed in the kernel launch.
      *
+     * @deprecated Use the single argument version as Element is now
+     *             ignored.
+     *
      * @return ScriptIntrinsicColorMatrix
      */
+    @Deprecated
     public static ScriptIntrinsicColorMatrix create(RenderScript rs, Element e) {
         return create(rs);
     }
diff --git a/graphics/java/android/renderscript/ScriptIntrinsicHistogram.java b/graphics/java/android/renderscript/ScriptIntrinsicHistogram.java
index f143326..adc2d95 100644
--- a/graphics/java/android/renderscript/ScriptIntrinsicHistogram.java
+++ b/graphics/java/android/renderscript/ScriptIntrinsicHistogram.java
@@ -151,7 +151,7 @@
      *
      * @param ain The input image
      */
-    public void forEach_dot(Allocation ain) {
+    public void forEach_Dot(Allocation ain) {
         if (mOut.getType().getElement().getVectorSize() != 1) {
             throw new RSIllegalArgumentException("Output vector size must be one.");
         }
@@ -170,7 +170,7 @@
      *
      * @return Script.KernelID The KernelID object.
      */
-    public Script.KernelID getKernelID_seperate() {
+    public Script.KernelID getKernelID_Separate() {
         return createKernelID(0, 3, null, null);
     }
 
diff --git a/media/java/android/media/ImageReader.java b/media/java/android/media/ImageReader.java
index f3356c9..b14a899 100644
--- a/media/java/android/media/ImageReader.java
+++ b/media/java/android/media/ImageReader.java
@@ -194,7 +194,7 @@
 
         Looper looper;
         mHandler = handler;
-        if (mHandler == null) {
+        if (listener != null && mHandler == null) {
             if ((looper = Looper.myLooper()) != null) {
                 mHandler = new Handler();
             } else {
@@ -283,7 +283,7 @@
             return;
         }
 
-        if (ir.mHandler != null) {
+        if (ir.mHandler != null && ir.mImageListener != null) {
             ir.mHandler.post(new Runnable() {
                 @Override
                 public void run() {
diff --git a/media/java/android/media/MediaScannerConnection.java b/media/java/android/media/MediaScannerConnection.java
index 21b6e14..273eb64 100644
--- a/media/java/android/media/MediaScannerConnection.java
+++ b/media/java/android/media/MediaScannerConnection.java
@@ -113,6 +113,9 @@
         synchronized (this) {
             if (!mConnected) {
                 Intent intent = new Intent(IMediaScannerService.class.getName());
+                intent.setComponent(
+                        new ComponentName("com.android.providers.media",
+                                "com.android.providers.media.MediaScannerService"));
                 mContext.bindService(intent, this, Context.BIND_AUTO_CREATE);
                 mConnected = true;
             }
diff --git a/media/jni/android_media_ImageReader.cpp b/media/jni/android_media_ImageReader.cpp
index 7f1d946..92edb8a 100644
--- a/media/jni/android_media_ImageReader.cpp
+++ b/media/jni/android_media_ImageReader.cpp
@@ -155,7 +155,7 @@
     return buffer;
 }
 
-void JNIImageReaderContext::returnLockedBuffer(CpuConsumer::LockedBuffer * buffer) {
+void JNIImageReaderContext::returnLockedBuffer(CpuConsumer::LockedBuffer* buffer) {
     mBuffers.push_back(buffer);
 }
 
@@ -698,8 +698,11 @@
     CpuConsumer* consumer = ctx->getCpuConsumer();
     CpuConsumer::LockedBuffer* buffer = ctx->getLockedBuffer();
     if (buffer == NULL) {
-        ALOGE("Unable to acquire a lockedBuffer, very likely client tries to lock more than"
-            "maxImages buffers");
+        ALOGW("Unable to acquire a lockedBuffer, very likely client tries to lock more than"
+            " maxImages buffers");
+        jniThrowException(env, OutOfResourcesException,
+                  "Too many outstanding images, close existing images"
+                  " to be able to acquire more.");
         return false;
     }
     status_t res = consumer->lockNextBuffer(buffer);
diff --git a/packages/DocumentsUI/res/values-af/strings.xml b/packages/DocumentsUI/res/values-af/strings.xml
index 47ce39d..d8166cc 100644
--- a/packages/DocumentsUI/res/values-af/strings.xml
+++ b/packages/DocumentsUI/res/values-af/strings.xml
@@ -18,7 +18,7 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="2783841764617238354">"Dokumente"</string>
     <string name="title_open" msgid="4353228937663917801">"Maak oop vanaf"</string>
-    <string name="title_save" msgid="2433679664882857999">"Stoor in"</string>
+    <string name="title_save" msgid="2433679664882857999">"Stoor na"</string>
     <string name="menu_create_dir" msgid="5947289605844398389">"Skep vouer"</string>
     <string name="menu_grid" msgid="6878021334497835259">"Roosteraansig"</string>
     <string name="menu_list" msgid="7279285939892417279">"Lysaansig"</string>
@@ -41,13 +41,13 @@
     <string name="root_type_service" msgid="2857362700576006694">"Dienste"</string>
     <string name="root_type_shortcut" msgid="3318760609471618093">"Kortpaaie"</string>
     <string name="root_type_device" msgid="7121342474653483538">"Toestelle"</string>
-    <string name="root_type_apps" msgid="8838065367985945189">"Nog meer programme"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Nog programme"</string>
     <string name="pref_advanced_devices" msgid="903257239609301276">"Wys gevorderde toestelle"</string>
     <string name="pref_file_size" msgid="2826879315743961459">"Wys lêergrootte"</string>
     <string name="pref_device_size" msgid="3542106883278997222">"Wys toestelgrootte"</string>
     <string name="empty" msgid="7858882803708117596">"Geen items nie"</string>
-    <string name="toast_no_application" msgid="1339885974067891667">"Kan nie lêer oopmaak nie"</string>
-    <string name="toast_failed_delete" msgid="2180678019407244069">"Kan nie sommige dokumente uitvee nie"</string>
-    <string name="more" msgid="7117420986529297171">"Nog meer"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Kan lêer nie oopmaak nie"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Kan sommige dokumente nie uitvee nie"</string>
+    <string name="more" msgid="7117420986529297171">"Nog"</string>
     <string name="loading" msgid="7933681260296021180">"Laai tans..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-am/strings.xml b/packages/DocumentsUI/res/values-am/strings.xml
index c97ee9e..1550ddb 100644
--- a/packages/DocumentsUI/res/values-am/strings.xml
+++ b/packages/DocumentsUI/res/values-am/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"ሰነዶች"</string>
+    <string name="title_open" msgid="4353228937663917801">"ክፈት ከ"</string>
+    <string name="title_save" msgid="2433679664882857999">"አስቀምጥ ወደ"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"አቃፊ ፍጠር"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"የፍርግርግ እይታ"</string>
+    <string name="menu_list" msgid="7279285939892417279">"የዝርዝር እይታ"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"ደርድር በ"</string>
+    <string name="menu_search" msgid="3816712084502856974">"ፈልግ"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"ቅንብሮች"</string>
+    <string name="menu_open" msgid="432922957274920903">"ክፈት"</string>
+    <string name="menu_save" msgid="2394743337684426338">"አስቀምጥ"</string>
+    <string name="menu_share" msgid="3075149983979628146">"አጋራ"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"ሰርዝ"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ተመርጠዋል"</string>
+    <string name="sort_name" msgid="9183560467917256779">"በስም"</string>
+    <string name="sort_date" msgid="586080032956151448">"በተለወጠበት ቀን"</string>
+    <string name="sort_size" msgid="3350681319735474741">"በመጠን"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"ስሮችን አሳይ"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"ስሮችን ደብቅ"</string>
+    <string name="save_error" msgid="6167009778003223664">"ሰነድ ማስቀመጥ አልተሳካም"</string>
+    <string name="root_recent" msgid="4470053704320518133">"የቅርብ ጊዜ"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> ነፃ"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"አገልግሎቶች"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"አቋራጮች"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"መሣሪያዎች"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"ተጨማሪ መተግበሪያዎች"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"የላቁ መሳሪያዎችን አሳይ"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"የፋይል መጠን አሳይ"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"የመሳሪያ መጠን አሳይ"</string>
+    <string name="empty" msgid="7858882803708117596">"ምንም ንጥሎች የሉም"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"ፋይል መክፈት አይቻልም"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"አንዳንድ ሰነዶችን መሰረዝ አልተቻለም"</string>
+    <string name="more" msgid="7117420986529297171">"ተጨማሪ"</string>
     <string name="loading" msgid="7933681260296021180">"በመጫን ላይ…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-ar/strings.xml b/packages/DocumentsUI/res/values-ar/strings.xml
index 6e61718..19599b6 100644
--- a/packages/DocumentsUI/res/values-ar/strings.xml
+++ b/packages/DocumentsUI/res/values-ar/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"مستندات"</string>
+    <string name="title_open" msgid="4353228937663917801">"فتح من"</string>
+    <string name="title_save" msgid="2433679664882857999">"حفظ في"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"إنشاء مجلد"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"عرض الشبكة"</string>
+    <string name="menu_list" msgid="7279285939892417279">"عرض القائمة"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"ترتيب بحسب"</string>
+    <string name="menu_search" msgid="3816712084502856974">"بحث"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"الإعدادات"</string>
+    <string name="menu_open" msgid="432922957274920903">"فتح"</string>
+    <string name="menu_save" msgid="2394743337684426338">"حفظ"</string>
+    <string name="menu_share" msgid="3075149983979628146">"مشاركة"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"حذف"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"تم تحديد <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"بحسب الاسم"</string>
+    <string name="sort_date" msgid="586080032956151448">"بحسب تاريخ التعديل"</string>
+    <string name="sort_size" msgid="3350681319735474741">"بحسب الحجم"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"عرض الجذور"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"إخفاء الجذور"</string>
+    <string name="save_error" msgid="6167009778003223664">"أخفق حفظ المستند"</string>
+    <string name="root_recent" msgid="4470053704320518133">"الأخيرة"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> خالية"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"خدمات"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"اختصارات"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"أجهزة"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"المزيد من التطبيقات"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"عرض الأجهزة المتقدمة"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"عرض حجم الملف"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"عرض حجم الجهاز"</string>
+    <string name="empty" msgid="7858882803708117596">"ليس هناك أي عناصر"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"لا يمكن فتح الملف"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"تعذر حذف بعض المستندات"</string>
+    <string name="more" msgid="7117420986529297171">"المزيد"</string>
     <string name="loading" msgid="7933681260296021180">"جارٍ التحميل…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-az-rAZ/strings.xml b/packages/DocumentsUI/res/values-az-rAZ/strings.xml
new file mode 100644
index 0000000..806118b
--- /dev/null
+++ b/packages/DocumentsUI/res/values-az-rAZ/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="2783841764617238354">"Sənədlər"</string>
+    <string name="title_open" msgid="4353228937663917801">"Vasitəsilə açın"</string>
+    <string name="title_save" msgid="2433679664882857999">"buraya saxlayın"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Qovluq yaradın"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Torlu görünüş"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Siyahı görünüşü"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Bunlardan biri üzrə sırala"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Axtarış"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Ayarlar"</string>
+    <string name="menu_open" msgid="432922957274920903">"Açın"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Yadda saxlayın"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Paylaşın"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Sil"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> seçilmiş"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Ad üzrə"</string>
+    <string name="sort_date" msgid="586080032956151448">"Tarix üzrə dəyişmiş"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Ölçü üzrə"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Kökləri göstərin"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Kökləri gizlədin"</string>
+    <string name="save_error" msgid="6167009778003223664">"Sənədi yadda saxlaya bilmədi"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Son"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> ödənişsiz"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Xidmətlər"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Qısa yollar"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Cihazlar"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Daha çox tətbiq"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Qabaqcıl cihazları görüntüləyin"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Fayl ölçüsünü görüntüləyin"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Cihaz ölçüsünü görüntüləyin"</string>
+    <string name="empty" msgid="7858882803708117596">"Element yoxdur"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Faylı aça bilmir"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Bəzi sənədləri silə bilmir"</string>
+    <string name="more" msgid="7117420986529297171">"Daha çox"</string>
+    <string name="loading" msgid="7933681260296021180">"Yüklənir…"</string>
+</resources>
diff --git a/packages/DocumentsUI/res/values-az/strings.xml b/packages/DocumentsUI/res/values-az/strings.xml
index 432bf88..806118b 100644
--- a/packages/DocumentsUI/res/values-az/strings.xml
+++ b/packages/DocumentsUI/res/values-az/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Sənədlər"</string>
+    <string name="title_open" msgid="4353228937663917801">"Vasitəsilə açın"</string>
+    <string name="title_save" msgid="2433679664882857999">"buraya saxlayın"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Qovluq yaradın"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Torlu görünüş"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Siyahı görünüşü"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Bunlardan biri üzrə sırala"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Axtarış"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Ayarlar"</string>
+    <string name="menu_open" msgid="432922957274920903">"Açın"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Yadda saxlayın"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Paylaşın"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Sil"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> seçilmiş"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Ad üzrə"</string>
+    <string name="sort_date" msgid="586080032956151448">"Tarix üzrə dəyişmiş"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Ölçü üzrə"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Kökləri göstərin"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Kökləri gizlədin"</string>
+    <string name="save_error" msgid="6167009778003223664">"Sənədi yadda saxlaya bilmədi"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Son"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> ödənişsiz"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Xidmətlər"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Qısa yollar"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Cihazlar"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Daha çox tətbiq"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Qabaqcıl cihazları görüntüləyin"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Fayl ölçüsünü görüntüləyin"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Cihaz ölçüsünü görüntüləyin"</string>
+    <string name="empty" msgid="7858882803708117596">"Element yoxdur"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Faylı aça bilmir"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Bəzi sənədləri silə bilmir"</string>
+    <string name="more" msgid="7117420986529297171">"Daha çox"</string>
     <string name="loading" msgid="7933681260296021180">"Yüklənir…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-bg/strings.xml b/packages/DocumentsUI/res/values-bg/strings.xml
index c5ef160..d04ec6c 100644
--- a/packages/DocumentsUI/res/values-bg/strings.xml
+++ b/packages/DocumentsUI/res/values-bg/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Документи"</string>
+    <string name="title_open" msgid="4353228937663917801">"Отваряне от"</string>
+    <string name="title_save" msgid="2433679664882857999">"Запазване в/ъв"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Създаване на папка"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Изглед в мрежа"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Списъчен изглед"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Сортиране по"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Търсене"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Настройки"</string>
+    <string name="menu_open" msgid="432922957274920903">"Отваряне"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Запазване"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Споделяне"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Изтриване"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"Избрахте <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"По име"</string>
+    <string name="sort_date" msgid="586080032956151448">"По дата на промяната"</string>
+    <string name="sort_size" msgid="3350681319735474741">"По размер"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Показване на основните елементи"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Скриване на основните елементи"</string>
+    <string name="save_error" msgid="6167009778003223664">"Запазването на документа не бе успешно"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Скорошно"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"Свободно: <xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Услуги"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Преки пътища"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Устройства"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Още приложения"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Показване на устройствата с разширени функции"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Показване на файловия размер"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Показване на размера на устройството"</string>
+    <string name="empty" msgid="7858882803708117596">"Няма елементи"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Файлът не може да се отвори"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Някои документи не могат да бъдат изтрити"</string>
+    <string name="more" msgid="7117420986529297171">"Още"</string>
     <string name="loading" msgid="7933681260296021180">"Зарежда се..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-ca/strings.xml b/packages/DocumentsUI/res/values-ca/strings.xml
index f9bf3a3..f5009d1 100644
--- a/packages/DocumentsUI/res/values-ca/strings.xml
+++ b/packages/DocumentsUI/res/values-ca/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Documents"</string>
+    <string name="title_open" msgid="4353228937663917801">"Obre des de"</string>
+    <string name="title_save" msgid="2433679664882857999">"Desa a"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Crea una carpeta"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Visualització de quadrícula"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Visualització de llista"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Ordena per"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Cerca"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Configuració"</string>
+    <string name="menu_open" msgid="432922957274920903">"Obre"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Desa"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Comparteix"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Suprimeix"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"Seleccionats: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Per nom"</string>
+    <string name="sort_date" msgid="586080032956151448">"Per data de modificació"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Per mida"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Mostra les arrels"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Amaga les arrels"</string>
+    <string name="save_error" msgid="6167009778003223664">"No s\'ha pogut desar el document."</string>
+    <string name="root_recent" msgid="4470053704320518133">"Recent"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> lliures"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Serveis"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Dreceres"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Dispositius"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Més aplicacions"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Mostra els dispositius avançats"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Mostra la mida del fitxer"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Mostra la mida del dispositiu"</string>
+    <string name="empty" msgid="7858882803708117596">"Sense elements"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"No es pot obrir el fitxer."</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"No es poden suprimir alguns documents."</string>
+    <string name="more" msgid="7117420986529297171">"Més"</string>
     <string name="loading" msgid="7933681260296021180">"S\'està carregant…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-cs/strings.xml b/packages/DocumentsUI/res/values-cs/strings.xml
index 479245a..6a04e42 100644
--- a/packages/DocumentsUI/res/values-cs/strings.xml
+++ b/packages/DocumentsUI/res/values-cs/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Dokumenty"</string>
+    <string name="title_open" msgid="4353228937663917801">"Otevřít z"</string>
+    <string name="title_save" msgid="2433679664882857999">"Uložit do"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Vytvořit složku"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Mřížka"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Seznam"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Řadit podle"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Hledat"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Nastavení"</string>
+    <string name="menu_open" msgid="432922957274920903">"Otevřít"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Uložit"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Sdílet"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Smazat"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"Vybráno: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Podle názvu"</string>
+    <string name="sort_date" msgid="586080032956151448">"Podle data úpravy"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Podle velikosti"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Zobrazit kořeny"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Skrýt kořeny"</string>
+    <string name="save_error" msgid="6167009778003223664">"Uložení dokumentu se nezdařilo"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Poslední"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"Volný prostor: <xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Služby"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Klávesové zkratky"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Zařízení"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Další aplikace"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Zobrazit pokročilá zařízení"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Zobrazit velikost souboru"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Zobrazit velikost zařízení"</string>
+    <string name="empty" msgid="7858882803708117596">"Žádné položky"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Soubor nelze otevřít"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Některé dokumenty nelze smazat"</string>
+    <string name="more" msgid="7117420986529297171">"Více"</string>
     <string name="loading" msgid="7933681260296021180">"Načítání..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-da/strings.xml b/packages/DocumentsUI/res/values-da/strings.xml
index 06bf57c..dced265 100644
--- a/packages/DocumentsUI/res/values-da/strings.xml
+++ b/packages/DocumentsUI/res/values-da/strings.xml
@@ -17,7 +17,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_label" msgid="2783841764617238354">"Dokumenter"</string>
-    <string name="title_open" msgid="4353228937663917801">"Åbn i"</string>
+    <string name="title_open" msgid="4353228937663917801">"Åbn fra"</string>
     <string name="title_save" msgid="2433679664882857999">"Gem på"</string>
     <string name="menu_create_dir" msgid="5947289605844398389">"Opret mappe"</string>
     <string name="menu_grid" msgid="6878021334497835259">"Gittervisning"</string>
diff --git a/packages/DocumentsUI/res/values-de/strings.xml b/packages/DocumentsUI/res/values-de/strings.xml
index 8078872..2c7bff1 100644
--- a/packages/DocumentsUI/res/values-de/strings.xml
+++ b/packages/DocumentsUI/res/values-de/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Dokumente"</string>
+    <string name="title_open" msgid="4353228937663917801">"Öffnen von"</string>
+    <string name="title_save" msgid="2433679664882857999">"Speichern unter"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Ordner erstellen"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Rasteransicht"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Listenansicht"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Sortieren nach"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Suchen"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Einstellungen"</string>
+    <string name="menu_open" msgid="432922957274920903">"Öffnen"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Speichern"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Teilen"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Löschen"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ausgewählt"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Nach Name"</string>
+    <string name="sort_date" msgid="586080032956151448">"Nach Änderungsdatum"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Nach Größe"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Root-Verzeichnis anzeigen"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Root-Verzeichnis ausblenden"</string>
+    <string name="save_error" msgid="6167009778003223664">"Dokument konnte nicht gespeichert werden."</string>
+    <string name="root_recent" msgid="4470053704320518133">"Letzte"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> verfügbar"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Dienste"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Verknüpfungen"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Geräte"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Weitere Apps"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Erweiterte Geräte anzeigen"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Dateigröße anzeigen"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Geräteabmessungen anzeigen"</string>
+    <string name="empty" msgid="7858882803708117596">"Keine Elemente"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Datei kann nicht geöffnet werden."</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Einige Dokumente konnten nicht gelöscht werden."</string>
+    <string name="more" msgid="7117420986529297171">"Mehr"</string>
     <string name="loading" msgid="7933681260296021180">"Wird geladen…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-el/strings.xml b/packages/DocumentsUI/res/values-el/strings.xml
index 0070e8f..e278fde 100644
--- a/packages/DocumentsUI/res/values-el/strings.xml
+++ b/packages/DocumentsUI/res/values-el/strings.xml
@@ -45,7 +45,7 @@
     <string name="pref_advanced_devices" msgid="903257239609301276">"Εμφάνιση προηγμένων συσκευών"</string>
     <string name="pref_file_size" msgid="2826879315743961459">"Εμφάνιση μεγέθους αρχείου"</string>
     <string name="pref_device_size" msgid="3542106883278997222">"Εμφάνιση μεγέθους συσκευής"</string>
-    <string name="empty" msgid="7858882803708117596">"Δεν υπάρχουν αντικείμενα"</string>
+    <string name="empty" msgid="7858882803708117596">"Δεν υπάρχουν στοιχεία"</string>
     <string name="toast_no_application" msgid="1339885974067891667">"Δεν είναι δυνατό το άνοιγμα του αρχείου"</string>
     <string name="toast_failed_delete" msgid="2180678019407244069">"Δεν είναι δυνατή η διαγραφή ορισμένων εγγράφων"</string>
     <string name="more" msgid="7117420986529297171">"Περισσότερα"</string>
diff --git a/packages/DocumentsUI/res/values-es-rUS/strings.xml b/packages/DocumentsUI/res/values-es-rUS/strings.xml
index 8b6f8f7..68c5ac1 100644
--- a/packages/DocumentsUI/res/values-es-rUS/strings.xml
+++ b/packages/DocumentsUI/res/values-es-rUS/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Documentos"</string>
+    <string name="title_open" msgid="4353228937663917801">"Abrir desde"</string>
+    <string name="title_save" msgid="2433679664882857999">"Guardar en"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Crear carpeta"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Vista de cuadrícula"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Vista de lista"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Ordenar por"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Buscar"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Configuración"</string>
+    <string name="menu_open" msgid="432922957274920903">"Abrir"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Guardar"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Compartir"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Eliminar"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> seleccionado(s)"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Por nombre"</string>
+    <string name="sort_date" msgid="586080032956151448">"Por fecha de modificación"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Por tamaño"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Mostrar raíces"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Ocultar raíces"</string>
+    <string name="save_error" msgid="6167009778003223664">"Error al guardar el documento"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Recientes"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> de espacio libre"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Servicios"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Accesos directos"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Dispositivos"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Más aplicaciones"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Mostrar dispositivos avanzados"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Mostrar tamaño del archivo"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Mostrar tamaño del dispositivo"</string>
+    <string name="empty" msgid="7858882803708117596">"Sin elementos"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"No se puede abrir el archivo."</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"No es posible eliminar algunos documentos."</string>
+    <string name="more" msgid="7117420986529297171">"Más"</string>
     <string name="loading" msgid="7933681260296021180">"Cargando…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-et-rEE/strings.xml b/packages/DocumentsUI/res/values-et-rEE/strings.xml
index a364c81..2f7e14a 100644
--- a/packages/DocumentsUI/res/values-et-rEE/strings.xml
+++ b/packages/DocumentsUI/res/values-et-rEE/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Dokumendid"</string>
+    <string name="title_open" msgid="4353228937663917801">"Ava:"</string>
+    <string name="title_save" msgid="2433679664882857999">"Salvesta:"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Loo kaust"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Ruudustikkuva"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Loendikuva"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Sortimisalus:"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Otsing"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Seaded"</string>
+    <string name="menu_open" msgid="432922957274920903">"Ava"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Salvesta"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Jaga"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Kustuta"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> on valitud"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Nime järgi"</string>
+    <string name="sort_date" msgid="586080032956151448">"Muutmiskuupäeva järgi"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Suuruse järgi"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Kuva juured"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Peida juured"</string>
+    <string name="save_error" msgid="6167009778003223664">"Dokumendi salvestamine ebaõnnestus"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Hiljutised"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> on vaba"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Teenused"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Otseteed"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Seadmed"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Rohkem rakendusi"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Kuva tippseadmed"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Kuva faili suurus"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Kuva seadme suurus"</string>
+    <string name="empty" msgid="7858882803708117596">"Üksusi ei ole"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Faili ei saa avada"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Mõnda dokumenti ei õnnestu kustutada"</string>
+    <string name="more" msgid="7117420986529297171">"Rohkem"</string>
     <string name="loading" msgid="7933681260296021180">"Laadimine ..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-fa/strings.xml b/packages/DocumentsUI/res/values-fa/strings.xml
index 1efcf1a..852bea7 100644
--- a/packages/DocumentsUI/res/values-fa/strings.xml
+++ b/packages/DocumentsUI/res/values-fa/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"اسناد"</string>
+    <string name="title_open" msgid="4353228937663917801">"باز کردن از"</string>
+    <string name="title_save" msgid="2433679664882857999">"ذخیره در"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"ایجاد پوشه"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"نمای جدولی"</string>
+    <string name="menu_list" msgid="7279285939892417279">"نمای فهرست‌وار"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"مرتب‌سازی بر اساس"</string>
+    <string name="menu_search" msgid="3816712084502856974">"جستجو"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"تنظیمات"</string>
+    <string name="menu_open" msgid="432922957274920903">"باز کردن"</string>
+    <string name="menu_save" msgid="2394743337684426338">"ذخیره"</string>
+    <string name="menu_share" msgid="3075149983979628146">"اشتراک‌گذاری"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"حذف"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> انتخاب شد"</string>
+    <string name="sort_name" msgid="9183560467917256779">"بر اساس نام"</string>
+    <string name="sort_date" msgid="586080032956151448">"بر اساس تاریخ اصلاح"</string>
+    <string name="sort_size" msgid="3350681319735474741">"بر اساس اندازه"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"نمایش ریشه‌ها"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"پنهان کردن ریشه‌ها"</string>
+    <string name="save_error" msgid="6167009778003223664">"ذخیره سند انجام نشد"</string>
+    <string name="root_recent" msgid="4470053704320518133">"اخیر"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> آزاد"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"خدمات"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"میانبرها"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"دستگاه‌ها"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"برنامه‌های بیشتر"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"نمایش دستگاه‌های پیشرفته"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"نمایش اندازه فایل"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"نمایش اندازه صفحه نمایش"</string>
+    <string name="empty" msgid="7858882803708117596">"موردی موجود نیست"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"فایل باز نمی‌شود"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"برخی از اسناد حذف نمی‌شوند"</string>
+    <string name="more" msgid="7117420986529297171">"بیشتر"</string>
     <string name="loading" msgid="7933681260296021180">"در حال بارگیری..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-fi/strings.xml b/packages/DocumentsUI/res/values-fi/strings.xml
index 139f54d..c97159b 100644
--- a/packages/DocumentsUI/res/values-fi/strings.xml
+++ b/packages/DocumentsUI/res/values-fi/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Asiakirjat"</string>
+    <string name="title_open" msgid="4353228937663917801">"Avoinna alkaen"</string>
+    <string name="title_save" msgid="2433679664882857999">"Tallenna kohteeseen"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Luo kansio"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Ruudukkonäkymä"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Luettelonäkymä"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Lajitteluperuste"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Haku"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Asetukset"</string>
+    <string name="menu_open" msgid="432922957274920903">"Avaa"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Tallenna"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Jaa"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Poista"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> valittua"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Nimen mukaan"</string>
+    <string name="sort_date" msgid="586080032956151448">"Muokkauspäivän mukaan"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Koon mukaan"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Näytä juuret"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Piilota juuret"</string>
+    <string name="save_error" msgid="6167009778003223664">"Asiakirjan tallennus epäonnistui"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Viimeisimmät"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> vapaana"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Palvelut"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Pikakuvakkeet"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Laitteet"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Lisää sovelluksia"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Näytä kehittyneet laitteet"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Näytä tiedoston koko"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Näytä laitteen koko"</string>
+    <string name="empty" msgid="7858882803708117596">"Ei kohteita"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Tiedostoa ei voi avata"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Joitakin asiakirjoja ei voi poistaa"</string>
+    <string name="more" msgid="7117420986529297171">"Lisää"</string>
     <string name="loading" msgid="7933681260296021180">"Ladataan…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-fr-rCA/strings.xml b/packages/DocumentsUI/res/values-fr-rCA/strings.xml
index 00e874d..a9912c9 100644
--- a/packages/DocumentsUI/res/values-fr-rCA/strings.xml
+++ b/packages/DocumentsUI/res/values-fr-rCA/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Documents"</string>
+    <string name="title_open" msgid="4353228937663917801">"Ouvert à partir de"</string>
+    <string name="title_save" msgid="2433679664882857999">"Enregistrer dans"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Créer un dossier"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Grille"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Liste"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Trier par"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Rechercher"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Paramètres"</string>
+    <string name="menu_open" msgid="432922957274920903">"Ouvrir"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Enregistrer"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Partager"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Supprimer"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> sélectionné(s)"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Par nom"</string>
+    <string name="sort_date" msgid="586080032956151448">"Par date de modification"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Par taille"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Afficher les racines"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Masquer les racines"</string>
+    <string name="save_error" msgid="6167009778003223664">"Échec de l\'enregistrement du document"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Récents"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> disponible"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Services"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Raccourcis"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Appareils"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Plus d\'applications"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Afficher les appareils avancés"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Afficher la taille du fichier"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Taille de l\'écran de l\'appareil"</string>
+    <string name="empty" msgid="7858882803708117596">"Aucun élément"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Impossible d\'ouvrir le fichier"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Impossible de supprimer certains documents"</string>
+    <string name="more" msgid="7117420986529297171">"Plus"</string>
     <string name="loading" msgid="7933681260296021180">"Chargement en cours..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-fr/strings.xml b/packages/DocumentsUI/res/values-fr/strings.xml
index b8de17e..6049df7 100644
--- a/packages/DocumentsUI/res/values-fr/strings.xml
+++ b/packages/DocumentsUI/res/values-fr/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Documents"</string>
+    <string name="title_open" msgid="4353228937663917801">"Ouvrir sous"</string>
+    <string name="title_save" msgid="2433679664882857999">"Enregistrer sous"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Créer un dossier"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Grille"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Liste"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Trier par"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Rechercher"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Paramètres"</string>
+    <string name="menu_open" msgid="432922957274920903">"Ouvrir"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Enregistrer"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Partager"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Supprimer"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> élément(s) sélectionné(s)"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Par nom"</string>
+    <string name="sort_date" msgid="586080032956151448">"Par date de modification"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Par taille"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Afficher les répertoires racines"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Masquer les répertoires racines"</string>
+    <string name="save_error" msgid="6167009778003223664">"Échec de l\'enregistrement du document."</string>
+    <string name="root_recent" msgid="4470053704320518133">"Récents"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"Espace disponible : <xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Services"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Raccourcis"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Appareils"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Autres applications"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Afficher les appareils avancés"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Afficher la taille des fichiers"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Afficher la capacité de stockage des appareils"</string>
+    <string name="empty" msgid="7858882803708117596">"Aucun élément"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Impossible d\'ouvrir le fichier."</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Impossible de supprimer certains documents."</string>
+    <string name="more" msgid="7117420986529297171">"Plus"</string>
     <string name="loading" msgid="7933681260296021180">"Chargement…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-hi/strings.xml b/packages/DocumentsUI/res/values-hi/strings.xml
index ddd1646..2931df0 100644
--- a/packages/DocumentsUI/res/values-hi/strings.xml
+++ b/packages/DocumentsUI/res/values-hi/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"दस्तावेज़"</string>
+    <string name="title_open" msgid="4353228937663917801">"यहां से खोलें"</string>
+    <string name="title_save" msgid="2433679664882857999">"यहां सहेजें"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"फ़ोल्डर बनाएं"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"ग्रिड दृश्य"</string>
+    <string name="menu_list" msgid="7279285939892417279">"सूची दृश्य"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"इससे क्रमित करें"</string>
+    <string name="menu_search" msgid="3816712084502856974">"खोजें"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"सेटिंग"</string>
+    <string name="menu_open" msgid="432922957274920903">"खोलें"</string>
+    <string name="menu_save" msgid="2394743337684426338">"सहेजें"</string>
+    <string name="menu_share" msgid="3075149983979628146">"साझा करें"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"हटाएं"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> चयनित"</string>
+    <string name="sort_name" msgid="9183560467917256779">"नाम के अनुसार"</string>
+    <string name="sort_date" msgid="586080032956151448">"बदलाव के दिनांक के अनुसार"</string>
+    <string name="sort_size" msgid="3350681319735474741">"आकार के अनुसार"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"रूट दिखाएं"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"रूट छिपाएं"</string>
+    <string name="save_error" msgid="6167009778003223664">"दस्तावेज़ सहेजने में विफल रहा"</string>
+    <string name="root_recent" msgid="4470053704320518133">"हाल ही के"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> रिक्त"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"सेवाएं"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"शॉर्टकट"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"उपकरण"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"अधिक एप्लिकेशन"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"उन्नत उपकरणों को दिखाएं"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"फ़ाइल का आकार दिखाएं"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"उपकरण का आकार दिखाएं"</string>
+    <string name="empty" msgid="7858882803708117596">"कोई आइटम नहीं"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"फ़ाइल नहीं खोली जा सकती"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"कुछ दस्तावेज़ों को हटाने में अक्षम"</string>
+    <string name="more" msgid="7117420986529297171">"अधिक"</string>
     <string name="loading" msgid="7933681260296021180">"लोड हो रहे हैं..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-hr/strings.xml b/packages/DocumentsUI/res/values-hr/strings.xml
index 569a01b..f6775e0 100644
--- a/packages/DocumentsUI/res/values-hr/strings.xml
+++ b/packages/DocumentsUI/res/values-hr/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Dokumenti"</string>
+    <string name="title_open" msgid="4353228937663917801">"Otvori iz"</string>
+    <string name="title_save" msgid="2433679664882857999">"Spremi u"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Izradi mapu"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Prikaz rešetke"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Prikaz popisa"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Poredano po"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Pretraživanje"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Postavke"</string>
+    <string name="menu_open" msgid="432922957274920903">"Otvaranje"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Spremi"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Dijeli"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Izbriši"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"Odabrano: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Po korisniku"</string>
+    <string name="sort_date" msgid="586080032956151448">"Po datumu izmjene"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Po veličini"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Prikaži korijene"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Sakrij korijene"</string>
+    <string name="save_error" msgid="6167009778003223664">"Nije uspjelo spremanje dokumenta"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Nedavno"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> besplatno"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Usluge"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Prečaci"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Uređaji"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Više aplikacija"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Prikaži napredne uređaje"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Prikaži veličinu datoteke"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Prikaži veličinu uređaja"</string>
+    <string name="empty" msgid="7858882803708117596">"Nema stavki"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Datoteku nije moguće otvoriti"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Nije moguće izbrisati neke dokumente"</string>
+    <string name="more" msgid="7117420986529297171">"Više"</string>
     <string name="loading" msgid="7933681260296021180">"Učitavanje…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-hu/strings.xml b/packages/DocumentsUI/res/values-hu/strings.xml
index 7bb6ae0..660f654 100644
--- a/packages/DocumentsUI/res/values-hu/strings.xml
+++ b/packages/DocumentsUI/res/values-hu/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Dokumentumok"</string>
+    <string name="title_open" msgid="4353228937663917801">"Megnyitás innen"</string>
+    <string name="title_save" msgid="2433679664882857999">"Mentés ide"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Mappa létrehozása"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Rács"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Lista"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Rendezés"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Keresés"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Beállítások"</string>
+    <string name="menu_open" msgid="432922957274920903">"Megnyitás"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Mentés"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Megosztás"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Törlés"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> kiválasztva"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Név szerint"</string>
+    <string name="sort_date" msgid="586080032956151448">"Módosítás dátuma szerint"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Méret szerint"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Gyökérszint megjelenítése"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Gyökérszint elrejtése"</string>
+    <string name="save_error" msgid="6167009778003223664">"Nem sikerült menteni a dokumentumot"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Legutóbbiak"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> szabad"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Szolgáltatások"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Parancsikonok"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Eszközök"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"További alkalmazások"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Speciális eszközök megjelenítése"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Fájlméret megjelenítése"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Eszközméret megjelenítése"</string>
+    <string name="empty" msgid="7858882803708117596">"Nincsenek elemek"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"A fájlt nem lehet megnyitni"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Néhány dokumentumot nem lehet törölni"</string>
+    <string name="more" msgid="7117420986529297171">"Továbbiak"</string>
     <string name="loading" msgid="7933681260296021180">"Betöltés..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-hy-rAM/strings.xml b/packages/DocumentsUI/res/values-hy-rAM/strings.xml
index c9632c8..357875d 100644
--- a/packages/DocumentsUI/res/values-hy-rAM/strings.xml
+++ b/packages/DocumentsUI/res/values-hy-rAM/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Փաստաթղթեր"</string>
+    <string name="title_open" msgid="4353228937663917801">"Բացել այստեղից"</string>
+    <string name="title_save" msgid="2433679664882857999">"Պահել այստեղ"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Ստեղծել թղթապանակ"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Ցանցային տեսք"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Ցուցակի տեսք"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Դասավորել ըստ"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Որոնել"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Կարգավորումներ"</string>
+    <string name="menu_open" msgid="432922957274920903">"Բացել"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Պահել"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Համօգտագործել"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Ջնջել"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ընտրված"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Ըստ անվան"</string>
+    <string name="sort_date" msgid="586080032956151448">"Ըստ փոփոխման ամսաթվի"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Ըստ չափի"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Ցույց տալ արմատները"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Թաքցնել արմատները"</string>
+    <string name="save_error" msgid="6167009778003223664">"Չհաջողվեց պահել փաստաթուղթը"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Վերջին"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> ազատ է"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Ծառայություններ"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Դյուրանցումներ"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Սարքեր"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Հավելյալ ծրագրեր"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Ցուցադրել ընդլայնված սարքերը"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Ցուցադրել ֆայլի չափը"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Ցուցադրել սարքի չափը"</string>
+    <string name="empty" msgid="7858882803708117596">"Տարրեր չկան"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Հնարավոր չէ բացել ֆայլը"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Անհնար է ջնջել որոշ փաստաթղթեր"</string>
+    <string name="more" msgid="7117420986529297171">"Ավելին"</string>
     <string name="loading" msgid="7933681260296021180">"Բեռնում..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-in/strings.xml b/packages/DocumentsUI/res/values-in/strings.xml
index 1905c96..9bf1179 100644
--- a/packages/DocumentsUI/res/values-in/strings.xml
+++ b/packages/DocumentsUI/res/values-in/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Dokumen"</string>
+    <string name="title_open" msgid="4353228937663917801">"Buka dari"</string>
+    <string name="title_save" msgid="2433679664882857999">"Simpan ke"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Buat folder"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Tampilan kisi"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Tampilan daftar"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Sortir menurut"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Telusuri"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Setelan"</string>
+    <string name="menu_open" msgid="432922957274920903">"Buka"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Simpan"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Bagikan"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Hapus"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> dipilih"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Menurut nama"</string>
+    <string name="sort_date" msgid="586080032956151448">"Menurut tanggal diubah"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Menurut ukuran"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Tampilkan akar"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Sembunyikan akar"</string>
+    <string name="save_error" msgid="6167009778003223664">"Gagal menyimpan dokumen"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Terkini"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> bebas"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Layanan"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Pintasan"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Perangkat"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Aplikasi lain"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Tampilkan perangkat lanjutan"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Tampilkan ukuran file"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Tampilkan ukuran perangkat"</string>
+    <string name="empty" msgid="7858882803708117596">"Tidak ada item"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Tidak dapat membuka file"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Tidak dapat menghapus beberapa dokumen"</string>
+    <string name="more" msgid="7117420986529297171">"Lainnya"</string>
     <string name="loading" msgid="7933681260296021180">"Memuat..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-ja/strings.xml b/packages/DocumentsUI/res/values-ja/strings.xml
index e148721..4a1bdc9 100644
--- a/packages/DocumentsUI/res/values-ja/strings.xml
+++ b/packages/DocumentsUI/res/values-ja/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"ドキュメント"</string>
+    <string name="title_open" msgid="4353228937663917801">"次から開く:"</string>
+    <string name="title_save" msgid="2433679664882857999">"次に保存:"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"フォルダを作成"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"グリッド表示"</string>
+    <string name="menu_list" msgid="7279285939892417279">"リスト表示"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"並べ替え"</string>
+    <string name="menu_search" msgid="3816712084502856974">"検索"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"設定"</string>
+    <string name="menu_open" msgid="432922957274920903">"開く"</string>
+    <string name="menu_save" msgid="2394743337684426338">"保存"</string>
+    <string name="menu_share" msgid="3075149983979628146">"共有"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"削除"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g>件選択済み"</string>
+    <string name="sort_name" msgid="9183560467917256779">"名前順"</string>
+    <string name="sort_date" msgid="586080032956151448">"更新日順"</string>
+    <string name="sort_size" msgid="3350681319735474741">"サイズ順"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"ルートを表示する"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"ルートを非表示にする"</string>
+    <string name="save_error" msgid="6167009778003223664">"ドキュメントを保存できませんでした"</string>
+    <string name="root_recent" msgid="4470053704320518133">"最近"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"空き容量: <xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"サービス"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"ショートカット"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"端末"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"その他のアプリ"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"端末の詳細設定を表示"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"ファイルのサイズを表示"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"端末のサイズを表示"</string>
+    <string name="empty" msgid="7858882803708117596">"アイテムがありません"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"ファイルを開けません"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"一部のドキュメントを削除できません"</string>
+    <string name="more" msgid="7117420986529297171">"その他"</string>
     <string name="loading" msgid="7933681260296021180">"読み込んでいます..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-ka-rGE/strings.xml b/packages/DocumentsUI/res/values-ka-rGE/strings.xml
index 17f1860..32ba350 100644
--- a/packages/DocumentsUI/res/values-ka-rGE/strings.xml
+++ b/packages/DocumentsUI/res/values-ka-rGE/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"დოკუმენტები"</string>
+    <string name="title_open" msgid="4353228937663917801">"გახსნა აქედან:"</string>
+    <string name="title_save" msgid="2433679664882857999">"შენახვა აქ:"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"საქაღალდის შექმნა"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"ბადის ხედი"</string>
+    <string name="menu_list" msgid="7279285939892417279">"სიის ხედი"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"სორტირება:"</string>
+    <string name="menu_search" msgid="3816712084502856974">"ძიება"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"პარამეტრები"</string>
+    <string name="menu_open" msgid="432922957274920903">"გახსნა"</string>
+    <string name="menu_save" msgid="2394743337684426338">"შენახვა"</string>
+    <string name="menu_share" msgid="3075149983979628146">"გაზიარება"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"წაშლა"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> მონიშნული"</string>
+    <string name="sort_name" msgid="9183560467917256779">"სახელით"</string>
+    <string name="sort_date" msgid="586080032956151448">"ცვლილების თარიღით"</string>
+    <string name="sort_size" msgid="3350681319735474741">"ზომით"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"ფესვების ჩვენება"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"ფესვების დამალვა"</string>
+    <string name="save_error" msgid="6167009778003223664">"დოკუმენტის შენახვა ვერ მოხერხდა"</string>
+    <string name="root_recent" msgid="4470053704320518133">"ბოლო"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> თავისუფალია"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Services"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"მალსახმობები"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"მოწყობილობები"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"მეტი აპები"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"კომპლექსური მოწყობილობების ჩვენება"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"ფაილის ზომის ჩვენება"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"მოწყობილობის ზომის ჩვენება"</string>
+    <string name="empty" msgid="7858882803708117596">"ერთეულები არ არის"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"ფაილის გახსნა ვერ ხერხდება"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"ზოგიერთი დოკუმენტის წაშლა ვერ ხერხდება"</string>
+    <string name="more" msgid="7117420986529297171">"მეტი"</string>
     <string name="loading" msgid="7933681260296021180">"ჩატვირთვა…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-km-rKH/strings.xml b/packages/DocumentsUI/res/values-km-rKH/strings.xml
index 092833d..253e9b2 100644
--- a/packages/DocumentsUI/res/values-km-rKH/strings.xml
+++ b/packages/DocumentsUI/res/values-km-rKH/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"ឯកសារ"</string>
+    <string name="title_open" msgid="4353228937663917801">"បើក​ពី"</string>
+    <string name="title_save" msgid="2433679664882857999">"រក្សា​ទុក​ទៅ"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"បង្កើត​ថត"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"ទិដ្ឋភាព​ក្រឡា"</string>
+    <string name="menu_list" msgid="7279285939892417279">"ទិដ្ឋភាព​បញ្ជី"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"តម្រៀប​តាម"</string>
+    <string name="menu_search" msgid="3816712084502856974">"ស្វែងរក"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"ការ​កំណត់"</string>
+    <string name="menu_open" msgid="432922957274920903">"បើក"</string>
+    <string name="menu_save" msgid="2394743337684426338">"រក្សាទុក"</string>
+    <string name="menu_share" msgid="3075149983979628146">"ចែករំលែក"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"លុប"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"បាន​ជ្រើស <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"តាម​ឈ្មោះ"</string>
+    <string name="sort_date" msgid="586080032956151448">"តាម​កាលបរិច្ឆេទ​បាន​កែប្រែ"</string>
+    <string name="sort_size" msgid="3350681319735474741">"តាម​​ទំហំ"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"បង្ហាញ roots"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"លាក់ roots"</string>
+    <string name="save_error" msgid="6167009778003223664">"បាន​បរាជ័យ​ក្នុង​ការ​រក្សា​ទុក​ឯកសារ"</string>
+    <string name="root_recent" msgid="4470053704320518133">"ថ្មីៗ"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"ទំនេរ <xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"សេវាកម្ម"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"ផ្លូវកាត់"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"ឧបករណ៍"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"កម្ម​វិធី​​ច្រើន​ទៀត"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"បង្ហាញ​ឧបករណ៍​កម្រិត​ខ្ពស់"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"បង្ហាញ​ទំហំ​ឯកសារ"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"បង្ហាញ​ទំហំ​ឧបករណ៍"</string>
+    <string name="empty" msgid="7858882803708117596">"គ្មានធាតុ"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"មិន​អាច​បើក​ឯកសារ"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"មិន​អាច​លុប​ឯកសារ​មួយ​ចំនួន"</string>
+    <string name="more" msgid="7117420986529297171">"ច្រើន​ទៀត"</string>
     <string name="loading" msgid="7933681260296021180">"កំពុង​ផ្ទុក..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-ko/strings.xml b/packages/DocumentsUI/res/values-ko/strings.xml
index c270c06..e23aed4 100644
--- a/packages/DocumentsUI/res/values-ko/strings.xml
+++ b/packages/DocumentsUI/res/values-ko/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"문서"</string>
+    <string name="title_open" msgid="4353228937663917801">"열기:"</string>
+    <string name="title_save" msgid="2433679664882857999">"저장 위치:"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"폴더 만들기"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"바둑판식 보기"</string>
+    <string name="menu_list" msgid="7279285939892417279">"목록 보기"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"정렬 기준"</string>
+    <string name="menu_search" msgid="3816712084502856974">"검색"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"설정"</string>
+    <string name="menu_open" msgid="432922957274920903">"열기"</string>
+    <string name="menu_save" msgid="2394743337684426338">"저장"</string>
+    <string name="menu_share" msgid="3075149983979628146">"공유"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"삭제"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g>개 선택됨"</string>
+    <string name="sort_name" msgid="9183560467917256779">"이름순"</string>
+    <string name="sort_date" msgid="586080032956151448">"수정된 날짜순"</string>
+    <string name="sort_size" msgid="3350681319735474741">"크기순"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"루트 표시"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"루트 숨기기"</string>
+    <string name="save_error" msgid="6167009778003223664">"문서 저장 실패"</string>
+    <string name="root_recent" msgid="4470053704320518133">"최근"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> 남음"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"서비스"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"바로가기"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"기기"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"앱 더보기"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"고급 기기 표시"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"파일 크기 표시"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"기기 크기 표시"</string>
+    <string name="empty" msgid="7858882803708117596">"항목 없음"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"파일을 열 수 없음"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"일부 문서를 삭제할 수 없음"</string>
+    <string name="more" msgid="7117420986529297171">"더보기"</string>
     <string name="loading" msgid="7933681260296021180">"로드 중.."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-lt/strings.xml b/packages/DocumentsUI/res/values-lt/strings.xml
index 852b4c7..9af9617 100644
--- a/packages/DocumentsUI/res/values-lt/strings.xml
+++ b/packages/DocumentsUI/res/values-lt/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Dokumentai"</string>
+    <string name="title_open" msgid="4353228937663917801">"Atidaryti iš"</string>
+    <string name="title_save" msgid="2433679664882857999">"Išsaugoti į"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Kurti aplanką"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Tinklelio rodinys"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Sąrašo rodinys"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Rūšiuoti pagal"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Ieškoti"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Nustatymai"</string>
+    <string name="menu_open" msgid="432922957274920903">"Atidaryti"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Išsaugoti"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Bendrinti"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Ištrinti"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"Pasirinkta: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Pagal pavadinimą"</string>
+    <string name="sort_date" msgid="586080032956151448">"Pagal keitimo datą"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Pagal dydį"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Rodyti šaknis"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Slėpti šaknis"</string>
+    <string name="save_error" msgid="6167009778003223664">"Nepavyko išsaugoti dokumento"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Naujausi"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"Laisvos vietos: <xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Paslaugos"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Spartieji klavišai"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Įrenginiai"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Daugiau programų"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Rodyti išplėstinius įrenginius"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Rodyti failo dydį"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Rodyti įrenginio dydį"</string>
+    <string name="empty" msgid="7858882803708117596">"Nėra elementų"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Nepavyksta atidaryti failo"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Nepavyko ištrinti kai kurių dokumentų"</string>
+    <string name="more" msgid="7117420986529297171">"Daugiau"</string>
     <string name="loading" msgid="7933681260296021180">"Įkeliama..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-lv/strings.xml b/packages/DocumentsUI/res/values-lv/strings.xml
index 8387ed1..4d94b30 100644
--- a/packages/DocumentsUI/res/values-lv/strings.xml
+++ b/packages/DocumentsUI/res/values-lv/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Dokumenti"</string>
+    <string name="title_open" msgid="4353228937663917801">"Atvēršana no:"</string>
+    <string name="title_save" msgid="2433679664882857999">"Saglabāšana:"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Izveidot mapi"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Režģis"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Saraksts"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Kārtot pēc"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Meklēt"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Iestatījumi"</string>
+    <string name="menu_open" msgid="432922957274920903">"Atvērt"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Saglabāt"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Kopīgot"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Dzēst"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"Atlasīts: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Pēc nosaukuma"</string>
+    <string name="sort_date" msgid="586080032956151448">"Pēc pārveidošanas datuma"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Pēc lieluma"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Rādīt saknes"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Slēpt saknes"</string>
+    <string name="save_error" msgid="6167009778003223664">"Neizdevās saglabāt dokumentu."</string>
+    <string name="root_recent" msgid="4470053704320518133">"Pēdējie"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"Brīva vieta: <xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Pakalpojumi"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Saīsnes"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Ierīces"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Vairāk lietotņu"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Attēlot papildu ierīces"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Attēlot faila lielumu"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Attēlot ierīces izmēru"</string>
+    <string name="empty" msgid="7858882803708117596">"Nav vienumu"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Nevar atvērt failu."</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Nevar dzēst dažus dokumentus."</string>
+    <string name="more" msgid="7117420986529297171">"Vēl"</string>
     <string name="loading" msgid="7933681260296021180">"Notiek ielāde..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-mn-rMN/strings.xml b/packages/DocumentsUI/res/values-mn-rMN/strings.xml
new file mode 100644
index 0000000..66637b8
--- /dev/null
+++ b/packages/DocumentsUI/res/values-mn-rMN/strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="2783841764617238354">"Документүүд"</string>
+    <string name="title_open" msgid="4353228937663917801">"Нээх"</string>
+    <string name="title_save" msgid="2433679664882857999">"Хадгалах"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Фолдер үүсгэх"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Эгнүүлж харах"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Жагсааж харах"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Эрэмбэлэх"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Хайх"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Тохиргоо"</string>
+    <string name="menu_open" msgid="432922957274920903">"Нээх"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Хадгалах"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Хуваалцах"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Устгах"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> сонгогдсон"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Нэрээр"</string>
+    <string name="sort_date" msgid="586080032956151448">"Өөрчлөгдсөн огноогоор"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Хэмжээгээр"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Язгуурыг харуулах"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Язгуурыг нууцлах"</string>
+    <string name="save_error" msgid="6167009778003223664">"Документыг хадгалж чадсангүй"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Саяхны"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> чөлөөтэй"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Үйлчилгээнүүд"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Товчлол"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Төхөөрөмжүүд"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Өөр апп-ууд"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Дэвшилтэт төхөөрөмжүүдийг харуулах"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Файлын хэмжээг харуулах"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Төхөөрөмжийн хэмжээг харуулах"</string>
+    <string name="empty" msgid="7858882803708117596">"Хоосон"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Файлыг нээх боломжгүй"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Зарим документуудыг устгах боломжгүй"</string>
+    <string name="more" msgid="7117420986529297171">"Цааш"</string>
+    <string name="loading" msgid="7933681260296021180">"Ачааллаж байна..."</string>
+</resources>
diff --git a/packages/DocumentsUI/res/values-mn/strings.xml b/packages/DocumentsUI/res/values-mn/strings.xml
index 1895321..66637b8 100644
--- a/packages/DocumentsUI/res/values-mn/strings.xml
+++ b/packages/DocumentsUI/res/values-mn/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Документүүд"</string>
+    <string name="title_open" msgid="4353228937663917801">"Нээх"</string>
+    <string name="title_save" msgid="2433679664882857999">"Хадгалах"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Фолдер үүсгэх"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Эгнүүлж харах"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Жагсааж харах"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Эрэмбэлэх"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Хайх"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Тохиргоо"</string>
+    <string name="menu_open" msgid="432922957274920903">"Нээх"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Хадгалах"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Хуваалцах"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Устгах"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> сонгогдсон"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Нэрээр"</string>
+    <string name="sort_date" msgid="586080032956151448">"Өөрчлөгдсөн огноогоор"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Хэмжээгээр"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Язгуурыг харуулах"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Язгуурыг нууцлах"</string>
+    <string name="save_error" msgid="6167009778003223664">"Документыг хадгалж чадсангүй"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Саяхны"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> чөлөөтэй"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Үйлчилгээнүүд"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Товчлол"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Төхөөрөмжүүд"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Өөр апп-ууд"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Дэвшилтэт төхөөрөмжүүдийг харуулах"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Файлын хэмжээг харуулах"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Төхөөрөмжийн хэмжээг харуулах"</string>
+    <string name="empty" msgid="7858882803708117596">"Хоосон"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Файлыг нээх боломжгүй"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Зарим документуудыг устгах боломжгүй"</string>
+    <string name="more" msgid="7117420986529297171">"Цааш"</string>
     <string name="loading" msgid="7933681260296021180">"Ачааллаж байна..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-ms-rMY/strings.xml b/packages/DocumentsUI/res/values-ms-rMY/strings.xml
index c820dc2..b23e37d 100644
--- a/packages/DocumentsUI/res/values-ms-rMY/strings.xml
+++ b/packages/DocumentsUI/res/values-ms-rMY/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Dokumen"</string>
+    <string name="title_open" msgid="4353228937663917801">"Buka dari"</string>
+    <string name="title_save" msgid="2433679664882857999">"Simpan ke"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Buat folder"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Paparan grid"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Paparan senarai"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Isih mengikut"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Cari"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Tetapan"</string>
+    <string name="menu_open" msgid="432922957274920903">"Buka"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Simpan"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Kongsi"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Padam"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> dipilih"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Mengikut nama"</string>
+    <string name="sort_date" msgid="586080032956151448">"Diubah suai mengikut tarikh"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Mengikut saiz"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Tunjukkan akar"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Sembunyikan akar"</string>
+    <string name="save_error" msgid="6167009778003223664">"Gagal menyimpan dokumen"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Terbaharu"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> kosong"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Perkhidmatan"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Pintasan"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Peranti"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Lebih banyak apl"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Paparkan peranti terperinci"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Paparkan saiz fail"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Paparkan saiz peranti"</string>
+    <string name="empty" msgid="7858882803708117596">"Tiada item"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Tidak dapat membuka fail"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Tidak dapat memadam beberapa dokumen"</string>
+    <string name="more" msgid="7117420986529297171">"Lagi"</string>
     <string name="loading" msgid="7933681260296021180">"Memuatkan…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-ne-rNP/strings.xml b/packages/DocumentsUI/res/values-ne-rNP/strings.xml
index 00553a0..39e7cd1 100644
--- a/packages/DocumentsUI/res/values-ne-rNP/strings.xml
+++ b/packages/DocumentsUI/res/values-ne-rNP/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"कागजातहरू"</string>
+    <string name="title_open" msgid="4353228937663917801">"यसबाट खोल्नुहोस्"</string>
+    <string name="title_save" msgid="2433679664882857999">"यसमा सुरक्षित गर्नुहोस्"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"फोल्डर सिर्जना गर्नुहोस्"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"ग्रिड दृश्य"</string>
+    <string name="menu_list" msgid="7279285939892417279">"सूची दृश्य"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"यसद्वारा क्रमवद्घ गर्नुहोस्"</string>
+    <string name="menu_search" msgid="3816712084502856974">"खोज्नुहोस्"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"सेटिङहरू"</string>
+    <string name="menu_open" msgid="432922957274920903">"खोल्नुहोस्"</string>
+    <string name="menu_save" msgid="2394743337684426338">"सुरक्षित गर्नुहोस्"</string>
+    <string name="menu_share" msgid="3075149983979628146">"साझेदारी गर्नुहोस्"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"मेटाउनुहोस्"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> चयन गरियो"</string>
+    <string name="sort_name" msgid="9183560467917256779">"नाम अनुसार"</string>
+    <string name="sort_date" msgid="586080032956151448">"परिमार्जित मिति अनुसार"</string>
+    <string name="sort_size" msgid="3350681319735474741">"आकार अनुसार"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"मूलहरू देखाउनुहोस्"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"मूलहरू लुकाउनुहोस्"</string>
+    <string name="save_error" msgid="6167009778003223664">"कागजात सुरक्षित गर्न विफल भयो"</string>
+    <string name="root_recent" msgid="4470053704320518133">"हालैको"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> खाली"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"सेवाहरू"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"सर्टकटहरू"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"उपकरणहरू"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"थप अनुप्रयोगहरू"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"उन्नत उपकरणहरू प्रदर्शन गर्नुहोस्"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"फाइल आकार प्रदर्शन गर्नुहोस्"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"उपकरण आकार प्रदर्शन गर्नुहोस्"</string>
+    <string name="empty" msgid="7858882803708117596">"कुनै वस्तु छैन।"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"फाइल खोल्न सक्दैन"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"केही कागजातहरू मेट्न असमर्थ छ"</string>
+    <string name="more" msgid="7117420986529297171">"थप"</string>
     <string name="loading" msgid="7933681260296021180">"लोड हुँदै..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-pl/strings.xml b/packages/DocumentsUI/res/values-pl/strings.xml
index 5c0d820..125d81f 100644
--- a/packages/DocumentsUI/res/values-pl/strings.xml
+++ b/packages/DocumentsUI/res/values-pl/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Dokumenty"</string>
+    <string name="title_open" msgid="4353228937663917801">"Otwórz z"</string>
+    <string name="title_save" msgid="2433679664882857999">"Zapisz w"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Utwórz folder"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Widok siatki"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Widok listy"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Sortuj według"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Szukaj"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Ustawienia"</string>
+    <string name="menu_open" msgid="432922957274920903">"Otwórz"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Zapisz"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Udostępnij"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Usuń"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"Wybrano: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Według nazwy"</string>
+    <string name="sort_date" msgid="586080032956151448">"Według daty zmiany"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Według rozmiaru"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Pokaż elementy główne"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Ukryj elementy główne"</string>
+    <string name="save_error" msgid="6167009778003223664">"Nie udało się zapisać dokumentu"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Ostatnie"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> wolne"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Usługi"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Skróty"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Urządzenia"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Więcej aplikacji"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Wyświetl urządzenia zaawansowane"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Wyświetl rozmiar pliku"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Wyświetl rozmiar urządzenia"</string>
+    <string name="empty" msgid="7858882803708117596">"Brak elementów"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Nie można otworzyć pliku"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Nie można usunąć niektórych dokumentów"</string>
+    <string name="more" msgid="7117420986529297171">"Więcej"</string>
     <string name="loading" msgid="7933681260296021180">"Wczytywanie…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-pt-rPT/strings.xml b/packages/DocumentsUI/res/values-pt-rPT/strings.xml
index cb6629a..d901eca 100644
--- a/packages/DocumentsUI/res/values-pt-rPT/strings.xml
+++ b/packages/DocumentsUI/res/values-pt-rPT/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Documentos"</string>
+    <string name="title_open" msgid="4353228937663917801">"Abrir de"</string>
+    <string name="title_save" msgid="2433679664882857999">"Guardar em"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Criar pasta"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Vista de grelha"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Vista de lista"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Ordenar por"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Pesquisar"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Definições"</string>
+    <string name="menu_open" msgid="432922957274920903">"Abrir"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Guardar"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Partilhar"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Eliminar"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selecionado(s)"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Por nome"</string>
+    <string name="sort_date" msgid="586080032956151448">"Por data de modificação"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Por tamanho"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Mostrar raízes"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Ocultar raízes"</string>
+    <string name="save_error" msgid="6167009778003223664">"Falha ao guardar o documento"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Recentes"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> espaço livre"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Serviços"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Atalhos"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Dispositivos"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Mais aplicações"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Apresentar dispositivos avançados"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Apresentar tamanho do ficheiro"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Apresentar tamanho do dispositivo"</string>
+    <string name="empty" msgid="7858882803708117596">"Sem itens"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Não é possível abrir o ficheiro"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Não é possível eliminar alguns documentos"</string>
+    <string name="more" msgid="7117420986529297171">"Mais"</string>
     <string name="loading" msgid="7933681260296021180">"A carregar…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-pt/strings.xml b/packages/DocumentsUI/res/values-pt/strings.xml
index 8c93077..1e72dca 100644
--- a/packages/DocumentsUI/res/values-pt/strings.xml
+++ b/packages/DocumentsUI/res/values-pt/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Documentos"</string>
+    <string name="title_open" msgid="4353228937663917801">"Abrir de"</string>
+    <string name="title_save" msgid="2433679664882857999">"Salvar em"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Criar pasta"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Visualização em grade"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Visualização em lista"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Classificar por"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Pesquisar"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Configurações"</string>
+    <string name="menu_open" msgid="432922957274920903">"Abrir"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Salvar"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Compartilhar"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Excluir"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selecionados"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Por nome"</string>
+    <string name="sort_date" msgid="586080032956151448">"Por data de modificação"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Por tamanho"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Mostrar raízes"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Ocultar raízes"</string>
+    <string name="save_error" msgid="6167009778003223664">"Falha ao salvar o documento"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Recentes"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> livres"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Serviços"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Atalhos"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Dispositivos"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Mais aplicativos"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Mostrar dispositivos avançados"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Mostrar tamanho do arquivo"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Mostrar tamanho do dispositivo"</string>
+    <string name="empty" msgid="7858882803708117596">"Nenhum item"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Não é possível abrir o arquivo"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Não foi possível excluir alguns documentos"</string>
+    <string name="more" msgid="7117420986529297171">"Mais"</string>
     <string name="loading" msgid="7933681260296021180">"Carregando…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-ro/strings.xml b/packages/DocumentsUI/res/values-ro/strings.xml
index ddb9c49..156283a 100644
--- a/packages/DocumentsUI/res/values-ro/strings.xml
+++ b/packages/DocumentsUI/res/values-ro/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Documente"</string>
+    <string name="title_open" msgid="4353228937663917801">"Deschideți din"</string>
+    <string name="title_save" msgid="2433679664882857999">"Salvați în"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Creați un dosar"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Afișare tip grilă"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Afișare tip listă"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Sortați după"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Căutați"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Setări"</string>
+    <string name="menu_open" msgid="432922957274920903">"Deschideți"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Salvați"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Distribuiți"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Ștergeți"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> selectate"</string>
+    <string name="sort_name" msgid="9183560467917256779">"După nume"</string>
+    <string name="sort_date" msgid="586080032956151448">"După data modificării"</string>
+    <string name="sort_size" msgid="3350681319735474741">"După dimensiune"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Afișați directoarele rădăcină"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Ascundeți directoarele rădăcină"</string>
+    <string name="save_error" msgid="6167009778003223664">"Salvarea documentului nu a reușit"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Recente"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> spațiu liber"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Servicii"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Comenzi rapide"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Dispozitive"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Alte aplicații"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Afișați dispozitive avansate"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Afișați dimensiunile fișierelor"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Afișați capacitatea de stocare a dispozitivelor"</string>
+    <string name="empty" msgid="7858882803708117596">"Nu există elemente"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Fișierul nu poate fi deschis"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Unele documente nu au putut fi șterse"</string>
+    <string name="more" msgid="7117420986529297171">"Mai multe"</string>
     <string name="loading" msgid="7933681260296021180">"Se încarcă…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-ru/strings.xml b/packages/DocumentsUI/res/values-ru/strings.xml
index e63a2a5..f23c008 100644
--- a/packages/DocumentsUI/res/values-ru/strings.xml
+++ b/packages/DocumentsUI/res/values-ru/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Документы"</string>
+    <string name="title_open" msgid="4353228937663917801">"Открыть"</string>
+    <string name="title_save" msgid="2433679664882857999">"Сохранить"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Новая папка"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Таблица"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Список"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Сортировать"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Поиск"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Настройки"</string>
+    <string name="menu_open" msgid="432922957274920903">"Открыть"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Сохранить"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Поделиться"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Удалить"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"Выбрано: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"По названию"</string>
+    <string name="sort_date" msgid="586080032956151448">"По дате изменения"</string>
+    <string name="sort_size" msgid="3350681319735474741">"По размеру"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Показать"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Скрыть"</string>
+    <string name="save_error" msgid="6167009778003223664">"Не удалось сохранить документ"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Недавние"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"Свободно <xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Сервисы"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Ярлыки"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Устройства"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Другие приложения"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Показать другие устройства"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Показать размер файла"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Показать размер устройства"</string>
+    <string name="empty" msgid="7858882803708117596">"Ничего нет"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Не удалось открыть файл"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Не удалось удалить некоторые документы"</string>
+    <string name="more" msgid="7117420986529297171">"Ещё"</string>
     <string name="loading" msgid="7933681260296021180">"Загрузка…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-si-rLK/strings.xml b/packages/DocumentsUI/res/values-si-rLK/strings.xml
index 0e6b3d0..b7a1b49 100644
--- a/packages/DocumentsUI/res/values-si-rLK/strings.xml
+++ b/packages/DocumentsUI/res/values-si-rLK/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"ලේඛන"</string>
+    <string name="title_open" msgid="4353228937663917801">"විවෘත වන්නේ"</string>
+    <string name="title_save" msgid="2433679664882857999">"සුරකින්නේ"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"ෆෝල්ඩරයක් සාදන්න"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"ජාල පෙනුම"</string>
+    <string name="menu_list" msgid="7279285939892417279">"ලැයිස්තු පෙනුම"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"අනුපිළිවෙලට සකසා ඇත්තේ"</string>
+    <string name="menu_search" msgid="3816712084502856974">"සෙවීම"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"සැකසීම්"</string>
+    <string name="menu_open" msgid="432922957274920903">"විවෘත කරන්න"</string>
+    <string name="menu_save" msgid="2394743337684426338">"සුරකින්න"</string>
+    <string name="menu_share" msgid="3075149983979628146">"බෙදාගන්න"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"මකන්න"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ක් තෝරාගන්නා ලදි"</string>
+    <string name="sort_name" msgid="9183560467917256779">"නමින්"</string>
+    <string name="sort_date" msgid="586080032956151448">"වෙනස් කරන ලද දිනයෙන්"</string>
+    <string name="sort_size" msgid="3350681319735474741">"ප්‍රමාණය මගින්"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"මුල් පෙන්වන්න"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"මුල් සඟවන්න"</string>
+    <string name="save_error" msgid="6167009778003223664">"ලේඛනය සුරැකීමට අපොහොසත් විය"</string>
+    <string name="root_recent" msgid="4470053704320518133">"මෑත"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> ඉතිරියි"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"සේවා"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"කෙටිමං"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"උපාංග"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"තවත් යෙදුම්"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"උසස් උපාංග දර්ශනය කරන්න"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"ගොනු ප්‍රමාණය දර්ශනය කරන්න"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"උපාංග ප්‍රමාණය දර්ශනය කරන්න"</string>
+    <string name="empty" msgid="7858882803708117596">"අයිතම නැත"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"ගොනුව විවෘත කළ නොහැක"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"සමහර ලේඛන මැකීමට නොහැකි විය"</string>
+    <string name="more" msgid="7117420986529297171">"තව"</string>
     <string name="loading" msgid="7933681260296021180">"පූරණය වෙමින්..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-sk/strings.xml b/packages/DocumentsUI/res/values-sk/strings.xml
index d1b8712..3b8dabc 100644
--- a/packages/DocumentsUI/res/values-sk/strings.xml
+++ b/packages/DocumentsUI/res/values-sk/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Dokumenty"</string>
+    <string name="title_open" msgid="4353228937663917801">"Otvoriť z"</string>
+    <string name="title_save" msgid="2433679664882857999">"Uložiť do"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Vytvoriť priečinok"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Zobrazenie mriežky"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Zobrazenie zoznamu"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Zoradiť podľa"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Hľadať"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Nastavenia"</string>
+    <string name="menu_open" msgid="432922957274920903">"Otvoriť"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Uložiť"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Zdieľať"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Odstrániť"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"Vybraté: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Podľa názvu"</string>
+    <string name="sort_date" msgid="586080032956151448">"Podľa dátumu zmeny"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Podľa veľkosti"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Zobraziť korene"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Skryť korene"</string>
+    <string name="save_error" msgid="6167009778003223664">"Dokument sa nepodarilo uložiť"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Nedávne"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"Voľné: <xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Služby"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Skratky"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Zariadenia"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Ďalšie aplikácie"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Zobraziť rozšírené zariadenia"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Zobraziť veľkosť súboru"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Zobraziť veľkosť zariadenia"</string>
+    <string name="empty" msgid="7858882803708117596">"Žiadne položky"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Súbor sa nepodarilo otvoriť"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Niektoré dokumenty sa nepodarilo odstrániť"</string>
+    <string name="more" msgid="7117420986529297171">"Viac"</string>
     <string name="loading" msgid="7933681260296021180">"Prebieha načítavanie..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-sl/strings.xml b/packages/DocumentsUI/res/values-sl/strings.xml
index ed43651..c668951 100644
--- a/packages/DocumentsUI/res/values-sl/strings.xml
+++ b/packages/DocumentsUI/res/values-sl/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Dokumenti"</string>
+    <string name="title_open" msgid="4353228937663917801">"Odpiranje iz"</string>
+    <string name="title_save" msgid="2433679664882857999">"Shranjevanje v"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Ustvarjanje mape"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Mrežni pogled"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Pogled seznama"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Razvrsti glede na"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Iskanje"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Nastavitve"</string>
+    <string name="menu_open" msgid="432922957274920903">"Odpri"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Shrani"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Skupna raba"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Izbriši"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"Št. izbranih: <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Po imenu"</string>
+    <string name="sort_date" msgid="586080032956151448">"Po datumu spremembe"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Po velikosti"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Pokaži korene"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Skrij korene"</string>
+    <string name="save_error" msgid="6167009778003223664">"Dokumenta ni bilo mogoče shraniti"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Nedavno"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"Prosto: <xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Storitve"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Bližnjice"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Naprave"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Več aplikacij"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Prikaz naprednih naprav"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Prikaz velikosti datoteke"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Prikaz velikosti naprave"</string>
+    <string name="empty" msgid="7858882803708117596">"Ni elementov"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Datoteke ni mogoče odpreti"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Nekaterih dokumentov ni mogoče izbrisati"</string>
+    <string name="more" msgid="7117420986529297171">"Več"</string>
     <string name="loading" msgid="7933681260296021180">"Nalaganje …"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-sr/strings.xml b/packages/DocumentsUI/res/values-sr/strings.xml
index 3c0f94e..b5042e7 100644
--- a/packages/DocumentsUI/res/values-sr/strings.xml
+++ b/packages/DocumentsUI/res/values-sr/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Документи"</string>
+    <string name="title_open" msgid="4353228937663917801">"Отвори са"</string>
+    <string name="title_save" msgid="2433679664882857999">"Сачувај у"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Направи директоријум"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Приказ мреже"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Приказ листе"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Сортирај према"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Претражи"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Подешавања"</string>
+    <string name="menu_open" msgid="432922957274920903">"Отвори"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Сачувај"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Дели"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Избриши"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"Изабрано је <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Према имену"</string>
+    <string name="sort_date" msgid="586080032956151448">"Према датуму измене"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Према величини"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Прикажи основне елементе"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Сакриј основне елементе"</string>
+    <string name="save_error" msgid="6167009778003223664">"Чување документа није успело"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Недавно"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"Слободно је <xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Услуге"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Пречице"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Уређаји"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Још апликација"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Прикажи напредне уређаје"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Прикажи величину датотеке"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Прикажи величину уређаја"</string>
+    <string name="empty" msgid="7858882803708117596">"Нема ставки"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Није могуће отворити датотеку"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Није могуће избрисати неке документе"</string>
+    <string name="more" msgid="7117420986529297171">"Још"</string>
     <string name="loading" msgid="7933681260296021180">"Учитавање…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-sw/strings.xml b/packages/DocumentsUI/res/values-sw/strings.xml
index fe4fc3e..affed56 100644
--- a/packages/DocumentsUI/res/values-sw/strings.xml
+++ b/packages/DocumentsUI/res/values-sw/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Hati"</string>
+    <string name="title_open" msgid="4353228937663917801">"Fungua kutoka"</string>
+    <string name="title_save" msgid="2433679664882857999">"Hifadhi kwenye"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Unda folda"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Mwonekano gridi"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Mwonekano orodha"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Panga kwa"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Utafutaji"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Mipangilio"</string>
+    <string name="menu_open" msgid="432922957274920903">"Fungua"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Hifadhi"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Shiriki"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Futa"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> zimechaguliwa"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Kwa jina"</string>
+    <string name="sort_date" msgid="586080032956151448">"Kwa tarehe iliporekebishwa"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Kwa ukubwa"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Onyesha usuli"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Ficha usuli"</string>
+    <string name="save_error" msgid="6167009778003223664">"Imeshindwa kuhifadhi hati"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Hivi karibuni"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> bila malipo"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Huduma"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Njia za mkato"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Vifaa"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Programu zaidi"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Onyesha vifaa mahiri"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Onyesha ukubwa wa faili"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Onyesha ukubwa wa kifaa"</string>
+    <string name="empty" msgid="7858882803708117596">"Hakuna vipengee"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Haiwezi kufungua faili"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Imeshindwa kufuta baadhi ya hati"</string>
+    <string name="more" msgid="7117420986529297171">"Zaidi"</string>
     <string name="loading" msgid="7933681260296021180">"Inapakia…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-th/strings.xml b/packages/DocumentsUI/res/values-th/strings.xml
index d9504fd..7e786ba 100644
--- a/packages/DocumentsUI/res/values-th/strings.xml
+++ b/packages/DocumentsUI/res/values-th/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"เอกสาร"</string>
+    <string name="title_open" msgid="4353228937663917801">"เปิดจาก"</string>
+    <string name="title_save" msgid="2433679664882857999">"บันทึกไปยัง"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"สร้างโฟลเดอร์"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"มุมมองตาราง"</string>
+    <string name="menu_list" msgid="7279285939892417279">"มุมมองรายการ"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"จัดเรียงตาม"</string>
+    <string name="menu_search" msgid="3816712084502856974">"ค้นหา"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"การตั้งค่า"</string>
+    <string name="menu_open" msgid="432922957274920903">"เปิด"</string>
+    <string name="menu_save" msgid="2394743337684426338">"บันทึก"</string>
+    <string name="menu_share" msgid="3075149983979628146">"แชร์"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"ลบ"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"เลือกไว้ <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"ตามชื่อ"</string>
+    <string name="sort_date" msgid="586080032956151448">"ตามวันที่ที่ปรับเปลี่ยน"</string>
+    <string name="sort_size" msgid="3350681319735474741">"ตามขนาด"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"แสดงราก"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"ซ่อนราก"</string>
+    <string name="save_error" msgid="6167009778003223664">"การบันทึกเอกสารล้มเหลว"</string>
+    <string name="root_recent" msgid="4470053704320518133">"ล่าสุด"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"ว่าง <xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"บริการ"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"ทางลัด"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"อุปกรณ์"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"แอปเพิ่มเติม"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"แสดงอุปกรณ์ขั้นสูง"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"แสดงขนาดของไฟล์"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"แสดงขนาดของอุปกรณ์"</string>
+    <string name="empty" msgid="7858882803708117596">"ไม่มีรายการ"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"ไม่สามารถเปิดไฟล์ได้"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"ไม่สามารถลบเอกสารบางรายการ"</string>
+    <string name="more" msgid="7117420986529297171">"เพิ่มเติม"</string>
     <string name="loading" msgid="7933681260296021180">"กำลังโหลด..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-tl/strings.xml b/packages/DocumentsUI/res/values-tl/strings.xml
index cfa0fb6..ae1608b 100644
--- a/packages/DocumentsUI/res/values-tl/strings.xml
+++ b/packages/DocumentsUI/res/values-tl/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Mga Dokumento"</string>
+    <string name="title_open" msgid="4353228937663917801">"Buksan mula sa"</string>
+    <string name="title_save" msgid="2433679664882857999">"I-save sa"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Gumawa ng folder"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"View ng grid"</string>
+    <string name="menu_list" msgid="7279285939892417279">"View ng listahan"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Pag-uri-uriin ayon sa"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Maghanap"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Mga Setting"</string>
+    <string name="menu_open" msgid="432922957274920903">"Buksan"</string>
+    <string name="menu_save" msgid="2394743337684426338">"I-save"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Ibahagi"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Tanggalin"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> ang pinili"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Ayon sa pangalan"</string>
+    <string name="sort_date" msgid="586080032956151448">"Ayon sa petsa ng pagbago"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Ayon sa laki"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Ipakita ang mga root"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Itago ang mga root"</string>
+    <string name="save_error" msgid="6167009778003223664">"Hindi na-save ang dokumento"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Kamakailan"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> ang libre"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Mga Serbisyo"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Mga Shortcut"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Mga Device"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Higit pang apps"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Ipakita ang mga advanced na device"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Ipakita ang laki ng file"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Ipakita ang laki ng device"</string>
+    <string name="empty" msgid="7858882803708117596">"Walang mga item"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Hindi mabuksan ang file"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Hindi matanggal ang ilang dokumento"</string>
+    <string name="more" msgid="7117420986529297171">"Higit pa"</string>
     <string name="loading" msgid="7933681260296021180">"Naglo-load…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-tr/strings.xml b/packages/DocumentsUI/res/values-tr/strings.xml
index c8dd8ac..bdd85cf 100644
--- a/packages/DocumentsUI/res/values-tr/strings.xml
+++ b/packages/DocumentsUI/res/values-tr/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Dokümanlar"</string>
+    <string name="title_open" msgid="4353228937663917801">"Şuradan aç:"</string>
+    <string name="title_save" msgid="2433679664882857999">"Şuraya kaydet:"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Klasör oluştur"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Tablo görünümü"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Liste görünümü"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Sıralama ölçütü"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Ara"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Ayarlar"</string>
+    <string name="menu_open" msgid="432922957274920903">"Aç"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Kaydet"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Paylaş"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Sil"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> tane seçildi"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Ada göre"</string>
+    <string name="sort_date" msgid="586080032956151448">"Değişiklik tarihine göre"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Boyuta göre"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Kökleri göster"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Kökleri sakla"</string>
+    <string name="save_error" msgid="6167009778003223664">"Doküman kaydedilemedi"</string>
+    <string name="root_recent" msgid="4470053704320518133">"En son"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> boş"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Hizmetler"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Kısayollar"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Cihazlar"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Diğer uygulamalar"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Gelişmiş cihazları göster"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Dosya boyutunu göster"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Cihaz boyutunu göster"</string>
+    <string name="empty" msgid="7858882803708117596">"Öğe yok"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Dosya açılamıyor"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Bazı dokümanlar silinemiyor"</string>
+    <string name="more" msgid="7117420986529297171">"Diğer"</string>
     <string name="loading" msgid="7933681260296021180">"Yükleniyor..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-vi/strings.xml b/packages/DocumentsUI/res/values-vi/strings.xml
index fb04ce8..d01c493 100644
--- a/packages/DocumentsUI/res/values-vi/strings.xml
+++ b/packages/DocumentsUI/res/values-vi/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Tài liệu"</string>
+    <string name="title_open" msgid="4353228937663917801">"Mở từ"</string>
+    <string name="title_save" msgid="2433679664882857999">"Lưu vào"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Tạo thư mục"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Chế độ xem lưới"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Chế độ xem danh sách"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Sắp xếp theo"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Tìm kiếm"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Cài đặt"</string>
+    <string name="menu_open" msgid="432922957274920903">"Mở"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Lưu"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Chia sẻ"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Xóa"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"Đã chọn <xliff:g id="COUNT">%1$d</xliff:g>"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Theo tên"</string>
+    <string name="sort_date" msgid="586080032956151448">"Theo ngày sửa đổi"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Theo kích thước"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Hiển thị gốc"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Ẩn gốc"</string>
+    <string name="save_error" msgid="6167009778003223664">"Không lưu tài liệu được"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Gần đây"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> còn trống"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Dịch vụ"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Lối tắt"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Thiết bị"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Các ứng dụng khác"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Hiển thị các thiết bị nâng cao"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Hiển thị kích thước tệp"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Hiển thị kích thước thiết bị"</string>
+    <string name="empty" msgid="7858882803708117596">"Không có mục nào"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Không thể mở tệp"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Không thể xóa một số tài liệu"</string>
+    <string name="more" msgid="7117420986529297171">"Thêm"</string>
     <string name="loading" msgid="7933681260296021180">"Đang tải…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-zh-rCN/strings.xml b/packages/DocumentsUI/res/values-zh-rCN/strings.xml
index 461f585..f172d29 100644
--- a/packages/DocumentsUI/res/values-zh-rCN/strings.xml
+++ b/packages/DocumentsUI/res/values-zh-rCN/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"文档"</string>
+    <string name="title_open" msgid="4353228937663917801">"打开文件"</string>
+    <string name="title_save" msgid="2433679664882857999">"保存文件"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"新建文件夹"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"网格视图"</string>
+    <string name="menu_list" msgid="7279285939892417279">"列表视图"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"排序依据"</string>
+    <string name="menu_search" msgid="3816712084502856974">"搜索"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"设置"</string>
+    <string name="menu_open" msgid="432922957274920903">"打开"</string>
+    <string name="menu_save" msgid="2394743337684426338">"保存"</string>
+    <string name="menu_share" msgid="3075149983979628146">"分享"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"删除"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"已选择<xliff:g id="COUNT">%1$d</xliff:g>项"</string>
+    <string name="sort_name" msgid="9183560467917256779">"按名称"</string>
+    <string name="sort_date" msgid="586080032956151448">"按修改日期"</string>
+    <string name="sort_size" msgid="3350681319735474741">"按大小"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"显示根目录"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"隐藏根目录"</string>
+    <string name="save_error" msgid="6167009778003223664">"无法保存文档"</string>
+    <string name="root_recent" msgid="4470053704320518133">"最近"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"可用空间:<xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"服务"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"快捷方式"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"设备"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"更多应用"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"显示高级设备"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"显示文件大小"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"显示设备大小"</string>
+    <string name="empty" msgid="7858882803708117596">"无任何文件"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"无法打开文件"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"无法删除部分文档"</string>
+    <string name="more" msgid="7117420986529297171">"更多"</string>
     <string name="loading" msgid="7933681260296021180">"正在加载..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-zh-rHK/strings.xml b/packages/DocumentsUI/res/values-zh-rHK/strings.xml
index 633b3cd..7d2af3a 100644
--- a/packages/DocumentsUI/res/values-zh-rHK/strings.xml
+++ b/packages/DocumentsUI/res/values-zh-rHK/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"文件"</string>
+    <string name="title_open" msgid="4353228937663917801">"開啟自"</string>
+    <string name="title_save" msgid="2433679664882857999">"儲存至"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"建立資料夾"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"格狀檢視"</string>
+    <string name="menu_list" msgid="7279285939892417279">"清單檢視"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"排序方式"</string>
+    <string name="menu_search" msgid="3816712084502856974">"搜尋"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"設定"</string>
+    <string name="menu_open" msgid="432922957274920903">"開啟"</string>
+    <string name="menu_save" msgid="2394743337684426338">"儲存"</string>
+    <string name="menu_share" msgid="3075149983979628146">"分享"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"刪除"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"已選取 <xliff:g id="COUNT">%1$d</xliff:g> 個"</string>
+    <string name="sort_name" msgid="9183560467917256779">"按名稱"</string>
+    <string name="sort_date" msgid="586080032956151448">"按修改日期"</string>
+    <string name="sort_size" msgid="3350681319735474741">"按大小"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"顯示根目錄"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"隱藏根目錄"</string>
+    <string name="save_error" msgid="6167009778003223664">"無法儲存文件"</string>
+    <string name="root_recent" msgid="4470053704320518133">"近期用過"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"可用空間:<xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"服務"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"捷徑"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"裝置"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"更多應用程式"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"顯示進階裝置"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"顯示檔案大小"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"顯示裝置大小"</string>
+    <string name="empty" msgid="7858882803708117596">"沒有項目"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"無法開啟檔案"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"無法刪除部分文件"</string>
+    <string name="more" msgid="7117420986529297171">"更多"</string>
     <string name="loading" msgid="7933681260296021180">"正在載入..."</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-zh-rTW/strings.xml b/packages/DocumentsUI/res/values-zh-rTW/strings.xml
index 1a1bb50..2246bd7 100644
--- a/packages/DocumentsUI/res/values-zh-rTW/strings.xml
+++ b/packages/DocumentsUI/res/values-zh-rTW/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"文件"</string>
+    <string name="title_open" msgid="4353228937663917801">"開啟工具"</string>
+    <string name="title_save" msgid="2433679664882857999">"儲存至"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"建立資料夾"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"格狀檢視"</string>
+    <string name="menu_list" msgid="7279285939892417279">"清單檢視"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"排序依據"</string>
+    <string name="menu_search" msgid="3816712084502856974">"搜尋"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"設定"</string>
+    <string name="menu_open" msgid="432922957274920903">"開啟"</string>
+    <string name="menu_save" msgid="2394743337684426338">"儲存"</string>
+    <string name="menu_share" msgid="3075149983979628146">"共用"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"刪除"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"已選取 <xliff:g id="COUNT">%1$d</xliff:g> 個項目"</string>
+    <string name="sort_name" msgid="9183560467917256779">"依名稱"</string>
+    <string name="sort_date" msgid="586080032956151448">"依修改日期"</string>
+    <string name="sort_size" msgid="3350681319735474741">"依大小"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"顯示根目錄"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"隱藏根目錄"</string>
+    <string name="save_error" msgid="6167009778003223664">"無法儲存文件"</string>
+    <string name="root_recent" msgid="4470053704320518133">"最近使用過的項目"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"可用空間:<xliff:g id="SIZE">%1$s</xliff:g>"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"服務"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"捷徑"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"裝置"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"更多應用程式"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"顯示進階裝置"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"顯示檔案大小"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"顯示裝置大小"</string>
+    <string name="empty" msgid="7858882803708117596">"沒有項目"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"無法開啟檔案"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"無法刪除部分文件"</string>
+    <string name="more" msgid="7117420986529297171">"更多"</string>
     <string name="loading" msgid="7933681260296021180">"載入中…"</string>
 </resources>
diff --git a/packages/DocumentsUI/res/values-zu/strings.xml b/packages/DocumentsUI/res/values-zu/strings.xml
index 37d65e4..6a630d7 100644
--- a/packages/DocumentsUI/res/values-zu/strings.xml
+++ b/packages/DocumentsUI/res/values-zu/strings.xml
@@ -16,71 +16,38 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_label (2783841764617238354) -->
-    <skip />
-    <!-- no translation found for title_open (4353228937663917801) -->
-    <skip />
-    <!-- no translation found for title_save (2433679664882857999) -->
-    <skip />
-    <!-- no translation found for menu_create_dir (5947289605844398389) -->
-    <skip />
-    <!-- no translation found for menu_grid (6878021334497835259) -->
-    <skip />
-    <!-- no translation found for menu_list (7279285939892417279) -->
-    <skip />
-    <!-- no translation found for menu_sort (7677740407158414452) -->
-    <skip />
-    <!-- no translation found for menu_search (3816712084502856974) -->
-    <skip />
-    <!-- no translation found for menu_settings (6008033148948428823) -->
-    <skip />
-    <!-- no translation found for menu_open (432922957274920903) -->
-    <skip />
-    <!-- no translation found for menu_save (2394743337684426338) -->
-    <skip />
-    <!-- no translation found for menu_share (3075149983979628146) -->
-    <skip />
-    <!-- no translation found for menu_delete (8138799623850614177) -->
-    <skip />
-    <!-- no translation found for mode_selected_count (459111894725594625) -->
-    <skip />
-    <!-- no translation found for sort_name (9183560467917256779) -->
-    <skip />
-    <!-- no translation found for sort_date (586080032956151448) -->
-    <skip />
-    <!-- no translation found for sort_size (3350681319735474741) -->
-    <skip />
-    <!-- no translation found for drawer_open (4545466532430226949) -->
-    <skip />
-    <!-- no translation found for drawer_close (7602734368552123318) -->
-    <skip />
-    <!-- no translation found for save_error (6167009778003223664) -->
-    <skip />
-    <!-- no translation found for root_recent (4470053704320518133) -->
-    <skip />
-    <!-- no translation found for root_available_bytes (8568452858617033281) -->
-    <skip />
-    <!-- no translation found for root_type_service (2857362700576006694) -->
-    <skip />
-    <!-- no translation found for root_type_shortcut (3318760609471618093) -->
-    <skip />
-    <!-- no translation found for root_type_device (7121342474653483538) -->
-    <skip />
-    <!-- no translation found for root_type_apps (8838065367985945189) -->
-    <skip />
-    <!-- no translation found for pref_advanced_devices (903257239609301276) -->
-    <skip />
-    <!-- no translation found for pref_file_size (2826879315743961459) -->
-    <skip />
-    <!-- no translation found for pref_device_size (3542106883278997222) -->
-    <skip />
-    <!-- no translation found for empty (7858882803708117596) -->
-    <skip />
-    <!-- no translation found for toast_no_application (1339885974067891667) -->
-    <skip />
-    <!-- no translation found for toast_failed_delete (2180678019407244069) -->
-    <skip />
-    <!-- no translation found for more (7117420986529297171) -->
-    <skip />
+    <string name="app_label" msgid="2783841764617238354">"Amadokhumenti"</string>
+    <string name="title_open" msgid="4353228937663917801">"Vula kusuka ku-"</string>
+    <string name="title_save" msgid="2433679664882857999">"Londoloza ku-"</string>
+    <string name="menu_create_dir" msgid="5947289605844398389">"Dala ifolda"</string>
+    <string name="menu_grid" msgid="6878021334497835259">"Ukubuka kwegridi"</string>
+    <string name="menu_list" msgid="7279285939892417279">"Ukubuka uhlu"</string>
+    <string name="menu_sort" msgid="7677740407158414452">"Hlunga nge-"</string>
+    <string name="menu_search" msgid="3816712084502856974">"Sesha"</string>
+    <string name="menu_settings" msgid="6008033148948428823">"Izilungiselelo"</string>
+    <string name="menu_open" msgid="432922957274920903">"Vula"</string>
+    <string name="menu_save" msgid="2394743337684426338">"Londoloza"</string>
+    <string name="menu_share" msgid="3075149983979628146">"Yabelana"</string>
+    <string name="menu_delete" msgid="8138799623850614177">"Susa"</string>
+    <string name="mode_selected_count" msgid="459111894725594625">"<xliff:g id="COUNT">%1$d</xliff:g> okukhethiwe"</string>
+    <string name="sort_name" msgid="9183560467917256779">"Ngegama"</string>
+    <string name="sort_date" msgid="586080032956151448">"Kuguqulwe ngedethi"</string>
+    <string name="sort_size" msgid="3350681319735474741">"Ngosayizi"</string>
+    <string name="drawer_open" msgid="4545466532430226949">"Bonisa izimpande"</string>
+    <string name="drawer_close" msgid="7602734368552123318">"Fihla izimpande"</string>
+    <string name="save_error" msgid="6167009778003223664">"Yehlulekile ukulondoloza idokhumenti"</string>
+    <string name="root_recent" msgid="4470053704320518133">"Okwakamuva"</string>
+    <string name="root_available_bytes" msgid="8568452858617033281">"<xliff:g id="SIZE">%1$s</xliff:g> okhululekile"</string>
+    <string name="root_type_service" msgid="2857362700576006694">"Amasevisi"</string>
+    <string name="root_type_shortcut" msgid="3318760609471618093">"Izinqamuleli"</string>
+    <string name="root_type_device" msgid="7121342474653483538">"Amadivayisi"</string>
+    <string name="root_type_apps" msgid="8838065367985945189">"Izinhlelo zokusebenza eziningi"</string>
+    <string name="pref_advanced_devices" msgid="903257239609301276">"Bonisa amadivayisi aphakeme"</string>
+    <string name="pref_file_size" msgid="2826879315743961459">"Bonisa usayizi wefayela"</string>
+    <string name="pref_device_size" msgid="3542106883278997222">"Bonisa usayizi wedivayisi"</string>
+    <string name="empty" msgid="7858882803708117596">"Azikho izinto"</string>
+    <string name="toast_no_application" msgid="1339885974067891667">"Ayikwazi ukuvula ifayela"</string>
+    <string name="toast_failed_delete" msgid="2180678019407244069">"Ayikwazi ukususa amanye amadokhumenti"</string>
+    <string name="more" msgid="7117420986529297171">"Okuningi"</string>
     <string name="loading" msgid="7933681260296021180">"Iyalayisha…"</string>
 </resources>
diff --git a/packages/ExternalStorageProvider/res/values-am/strings.xml b/packages/ExternalStorageProvider/res/values-am/strings.xml
new file mode 100644
index 0000000..f0255a1
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-am/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"ውጫዊ ማከማቻ"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"ውስጣዊ ማከማቻ"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-ar/strings.xml b/packages/ExternalStorageProvider/res/values-ar/strings.xml
new file mode 100644
index 0000000..67a600d
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-ar/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"وحدة تخزين خارجية"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"وحدة تخزين داخلية"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-az/strings.xml b/packages/ExternalStorageProvider/res/values-az/strings.xml
new file mode 100644
index 0000000..a6a79ca8
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-az/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Xarici Yaddaş"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Daxili yaddaş"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-bg/strings.xml b/packages/ExternalStorageProvider/res/values-bg/strings.xml
new file mode 100644
index 0000000..919e8b5
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-bg/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Външно хранилище"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Вътрешно хранилище"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-ca/strings.xml b/packages/ExternalStorageProvider/res/values-ca/strings.xml
new file mode 100644
index 0000000..958ea99
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-ca/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Emmagatzematge extern"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Emmagatzematge intern"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-cs/strings.xml b/packages/ExternalStorageProvider/res/values-cs/strings.xml
new file mode 100644
index 0000000..469ecf9
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-cs/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Externí úložiště"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Interní úložiště"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-de/strings.xml b/packages/ExternalStorageProvider/res/values-de/strings.xml
new file mode 100644
index 0000000..1f6ef45
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-de/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Externer Speicher"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Interner Speicher"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-es-rUS/strings.xml b/packages/ExternalStorageProvider/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..8e35245
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-es-rUS/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Almacenamiento externo"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Almacenamiento interno"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-et-rEE/strings.xml b/packages/ExternalStorageProvider/res/values-et-rEE/strings.xml
new file mode 100644
index 0000000..d651806
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-et-rEE/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Väline talletusruum"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Sisemine salvestusruum"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-fa/strings.xml b/packages/ExternalStorageProvider/res/values-fa/strings.xml
new file mode 100644
index 0000000..5f82a06
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-fa/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"فضای ذخیره خارجی"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"حافظهٔ داخلی"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-fi/strings.xml b/packages/ExternalStorageProvider/res/values-fi/strings.xml
new file mode 100644
index 0000000..f98b086
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-fi/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Ulkoinen tallennustila"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Sisäinen tallennustila"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-fr-rCA/strings.xml b/packages/ExternalStorageProvider/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..5861477
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-fr-rCA/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Stockage externe"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Mémoire de stockage interne"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-fr/strings.xml b/packages/ExternalStorageProvider/res/values-fr/strings.xml
new file mode 100644
index 0000000..5861477
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-fr/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Stockage externe"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Mémoire de stockage interne"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-hi/strings.xml b/packages/ExternalStorageProvider/res/values-hi/strings.xml
new file mode 100644
index 0000000..302ece1
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-hi/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"बाहरी संग्रहण"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"आंतरिक संग्रहण"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-hr/strings.xml b/packages/ExternalStorageProvider/res/values-hr/strings.xml
new file mode 100644
index 0000000..79429a7
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-hr/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Vanjska pohrana"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Unutarnja pohrana"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-hu/strings.xml b/packages/ExternalStorageProvider/res/values-hu/strings.xml
new file mode 100644
index 0000000..8175c42
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-hu/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Külső tárhely"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Belső tárhely"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-hy-rAM/strings.xml b/packages/ExternalStorageProvider/res/values-hy-rAM/strings.xml
new file mode 100644
index 0000000..c30a03b
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-hy-rAM/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Արտաքին պահոց"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Ներքին պահոց"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-in/strings.xml b/packages/ExternalStorageProvider/res/values-in/strings.xml
new file mode 100644
index 0000000..7180518
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-in/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Penyimpanan Eksternal"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Penyimpanan internal"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-ja/strings.xml b/packages/ExternalStorageProvider/res/values-ja/strings.xml
new file mode 100644
index 0000000..8d95025
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-ja/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"外部ストレージ"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"内部ストレージ"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-ka-rGE/strings.xml b/packages/ExternalStorageProvider/res/values-ka-rGE/strings.xml
new file mode 100644
index 0000000..6a26acd
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-ka-rGE/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"გარე მეხსიერება"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"შიდა მეხსიერება"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-km-rKH/strings.xml b/packages/ExternalStorageProvider/res/values-km-rKH/strings.xml
new file mode 100644
index 0000000..302ce4b
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-km-rKH/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"ឧបករណ៍​​ផ្ទុក​ខាងក្រៅ"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"ឧបករណ៍​ផ្ទុក​ខាង​ក្នុង"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-ko/strings.xml b/packages/ExternalStorageProvider/res/values-ko/strings.xml
new file mode 100644
index 0000000..07c9e83
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-ko/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"외부 저장소"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"내부 저장소"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-lt/strings.xml b/packages/ExternalStorageProvider/res/values-lt/strings.xml
new file mode 100644
index 0000000..b62efdc
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-lt/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Išorinė atmintinė"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Vidinė atmintinė"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-lv/strings.xml b/packages/ExternalStorageProvider/res/values-lv/strings.xml
new file mode 100644
index 0000000..23b7a0f
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-lv/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Ārējā krātuve"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Iekšējā atmiņa"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-mn/strings.xml b/packages/ExternalStorageProvider/res/values-mn/strings.xml
new file mode 100644
index 0000000..0193cdb
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-mn/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Гадаад сан"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Дотоод сан"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-ms-rMY/strings.xml b/packages/ExternalStorageProvider/res/values-ms-rMY/strings.xml
new file mode 100644
index 0000000..245d52d
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-ms-rMY/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Storan Luaran"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Storan dalaman"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-ne-rNP/strings.xml b/packages/ExternalStorageProvider/res/values-ne-rNP/strings.xml
new file mode 100644
index 0000000..8a9454e
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-ne-rNP/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"बाह्य भण्डारण"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"आन्तरिक भण्डारण"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-pl/strings.xml b/packages/ExternalStorageProvider/res/values-pl/strings.xml
new file mode 100644
index 0000000..1ac244d
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-pl/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Pamięć zewnętrzna"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Pamięć wewnętrzna"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-pt-rPT/strings.xml b/packages/ExternalStorageProvider/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..629b715
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-pt-rPT/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Armazenamento Externo"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Armazenamento interno"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-pt/strings.xml b/packages/ExternalStorageProvider/res/values-pt/strings.xml
new file mode 100644
index 0000000..bc5b35d
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-pt/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Armazenamento externo"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Armazenamento interno"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-ro/strings.xml b/packages/ExternalStorageProvider/res/values-ro/strings.xml
new file mode 100644
index 0000000..4295c22
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-ro/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Stocare externă"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Stocare internă"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-ru/strings.xml b/packages/ExternalStorageProvider/res/values-ru/strings.xml
new file mode 100644
index 0000000..8c3599d
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-ru/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Внешний накопитель"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Внутренняя память"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-si-rLK/strings.xml b/packages/ExternalStorageProvider/res/values-si-rLK/strings.xml
new file mode 100644
index 0000000..de3f3e8
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-si-rLK/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"බාහිර ආචයනය"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"අභ්‍යන්තර ආචයනය"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-sk/strings.xml b/packages/ExternalStorageProvider/res/values-sk/strings.xml
new file mode 100644
index 0000000..90fc971
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-sk/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Externý ukladací priestor"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Interný ukladací priestor"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-sl/strings.xml b/packages/ExternalStorageProvider/res/values-sl/strings.xml
new file mode 100644
index 0000000..7925fec
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-sl/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Zunanja shramba"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Notranji pomnilnik"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-sr/strings.xml b/packages/ExternalStorageProvider/res/values-sr/strings.xml
new file mode 100644
index 0000000..23b5561
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-sr/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Спољна меморија"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Интерна меморија"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-sw/strings.xml b/packages/ExternalStorageProvider/res/values-sw/strings.xml
new file mode 100644
index 0000000..2f9a1f6
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-sw/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Hifadhi ya Nje"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Hifadhi ya ndani"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-th/strings.xml b/packages/ExternalStorageProvider/res/values-th/strings.xml
new file mode 100644
index 0000000..d7e0191
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-th/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"ที่จัดเก็บข้อมูลภายนอก"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"ที่จัดเก็บข้อมูลภายใน"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-tl/strings.xml b/packages/ExternalStorageProvider/res/values-tl/strings.xml
new file mode 100644
index 0000000..360d941
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-tl/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"External Storage"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Internal storage"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-tr/strings.xml b/packages/ExternalStorageProvider/res/values-tr/strings.xml
new file mode 100644
index 0000000..547f4df
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-tr/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Harici Depolama"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Dahili depolama"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-vi/strings.xml b/packages/ExternalStorageProvider/res/values-vi/strings.xml
new file mode 100644
index 0000000..f5c8889
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-vi/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Bộ nhớ ngoài"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Bộ nhớ trong"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-zh-rCN/strings.xml b/packages/ExternalStorageProvider/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..772ef94
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-zh-rCN/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"外部存储设备"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"内部存储空间"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-zh-rHK/strings.xml b/packages/ExternalStorageProvider/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..6163163
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-zh-rHK/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"外部儲存空間"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"內部儲存空間"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-zh-rTW/strings.xml b/packages/ExternalStorageProvider/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..6163163
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-zh-rTW/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"外部儲存空間"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"內部儲存空間"</string>
+</resources>
diff --git a/packages/ExternalStorageProvider/res/values-zu/strings.xml b/packages/ExternalStorageProvider/res/values-zu/strings.xml
new file mode 100644
index 0000000..3c4cd95
--- /dev/null
+++ b/packages/ExternalStorageProvider/res/values-zu/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2013 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7123375275748530234">"Isitoreji sangaphandle"</string>
+    <string name="root_internal_storage" msgid="827844243068584127">"Isitoreji sangaphakathi"</string>
+</resources>
diff --git a/packages/Keyguard/AndroidManifest.xml b/packages/Keyguard/AndroidManifest.xml
index f3106da..7d77c48 100644
--- a/packages/Keyguard/AndroidManifest.xml
+++ b/packages/Keyguard/AndroidManifest.xml
@@ -38,9 +38,6 @@
     <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
     <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
 
-    <!-- Permission for the Hotword detector service -->
-    <uses-permission android:name="com.google.android.googlequicksearchbox.SEARCH_API" />
-
     <application android:label="@string/app_name"
         android:process="com.android.systemui"
         android:persistent="true" >
diff --git a/packages/Keyguard/src/com/android/keyguard/HotwordServiceClient.java b/packages/Keyguard/src/com/android/keyguard/HotwordServiceClient.java
deleted file mode 100644
index 94733d4..0000000
--- a/packages/Keyguard/src/com/android/keyguard/HotwordServiceClient.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.keyguard;
-
-import android.app.SearchManager;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.os.RemoteException;
-import android.os.UserHandle;
-import android.util.Log;
-
-import com.google.android.search.service.IHotwordService;
-import com.google.android.search.service.IHotwordServiceCallback;
-
-/**
- * Utility class with its callbacks to simplify usage of {@link IHotwordService}.
- *
- * The client is meant to be used for a single hotword detection in a session.
- * start() -> stop(); client is asked to stop & disconnect from the service.
- * start() -> onHotwordDetected(); client disconnects from the service automatically.
- */
-public class HotwordServiceClient implements Handler.Callback {
-    private static final String TAG = "HotwordServiceClient";
-    private static final boolean DBG = true;
-    private static final String ACTION_HOTWORD =
-            "com.google.android.search.service.IHotwordService";
-
-    private static final int MSG_SERVICE_CONNECTED = 0;
-    private static final int MSG_SERVICE_DISCONNECTED = 1;
-    private static final int MSG_HOTWORD_STARTED = 2;
-    private static final int MSG_HOTWORD_STOPPED = 3;
-    private static final int MSG_HOTWORD_DETECTED = 4;
-
-    private final Context mContext;
-    private final Callback mClientCallback;
-    private final Handler mHandler;
-
-    private IHotwordService mService;
-
-    public HotwordServiceClient(Context context, Callback callback) {
-        mContext = context;
-        mClientCallback = callback;
-        mHandler = new Handler(this);
-    }
-
-    public interface Callback {
-        void onServiceConnected();
-        void onServiceDisconnected();
-        void onHotwordDetectionStarted();
-        void onHotwordDetectionStopped();
-        void onHotwordDetected(String action);
-    }
-
-    /**
-     * Binds to the {@link IHotwordService} and starts hotword detection
-     * when the service is connected.
-     *
-     * @return false if the service can't be bound to.
-     */
-    public synchronized boolean start() {
-        if (mService != null) {
-            if (DBG) Log.d(TAG, "Multiple call to start(), service was already bound");
-            return true;
-        } else {
-            // TODO: The hotword service is currently hosted within the search app
-            // so the component handling the assist intent should handle hotwording
-            // as well.
-            final Intent intent =
-                    ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE))
-                            .getAssistIntent(mContext, true, UserHandle.USER_CURRENT);
-            if (intent == null) {
-                return false;
-            }
-
-            Intent hotwordIntent = new Intent(ACTION_HOTWORD);
-            hotwordIntent.fillIn(intent, Intent.FILL_IN_PACKAGE);
-            return mContext.bindService(
-                    hotwordIntent,
-                   mConnection,
-                   Context.BIND_AUTO_CREATE);
-        }
-    }
-
-    /**
-     * Unbinds from the the {@link IHotwordService}.
-     */
-    public synchronized void stop() {
-        if (mService != null) {
-            mContext.unbindService(mConnection);
-            mService = null;
-        }
-    }
-
-    @Override
-    public boolean handleMessage(Message msg) {
-        switch (msg.what) {
-            case MSG_SERVICE_CONNECTED:
-                handleServiceConnected();
-                break;
-            case MSG_SERVICE_DISCONNECTED:
-                handleServiceDisconnected();
-                break;
-            case MSG_HOTWORD_STARTED:
-                handleHotwordDetectionStarted();
-                break;
-            case MSG_HOTWORD_STOPPED:
-                handleHotwordDetectionStopped();
-                break;
-            case MSG_HOTWORD_DETECTED:
-                handleHotwordDetected((String) msg.obj);
-                break;
-            default:
-                if (DBG) Log.e(TAG, "Unhandled message");
-                return false;
-        }
-        return true;
-    }
-
-    private void handleServiceConnected() {
-        if (DBG) Log.d(TAG, "handleServiceConnected()");
-        if (mClientCallback != null) mClientCallback.onServiceConnected();
-        try {
-            mService.requestHotwordDetection(mServiceCallback);
-        } catch (RemoteException e) {
-            Log.e(TAG, "Exception while registering callback", e);
-            mHandler.sendEmptyMessage(MSG_SERVICE_DISCONNECTED);
-        }
-    }
-
-    private void handleServiceDisconnected() {
-        if (DBG) Log.d(TAG, "handleServiceDisconnected()");
-        mService = null;
-        if (mClientCallback != null) mClientCallback.onServiceDisconnected();
-    }
-
-    private void handleHotwordDetectionStarted() {
-        if (DBG) Log.d(TAG, "handleHotwordDetectionStarted()");
-        if (mClientCallback != null) mClientCallback.onHotwordDetectionStarted();
-    }
-
-    private void handleHotwordDetectionStopped() {
-        if (DBG) Log.d(TAG, "handleHotwordDetectionStopped()");
-        if (mClientCallback != null) mClientCallback.onHotwordDetectionStopped();
-    }
-
-    void handleHotwordDetected(final String action) {
-        if (DBG) Log.d(TAG, "handleHotwordDetected()");
-        if (mClientCallback != null) mClientCallback.onHotwordDetected(action);
-        stop();
-    }
-
-    /**
-     * Implements service connection methods.
-     */
-    private ServiceConnection mConnection = new ServiceConnection() {
-        /**
-         * Called when the service connects after calling bind().
-         */
-        public void onServiceConnected(ComponentName className, IBinder iservice) {
-            mService = IHotwordService.Stub.asInterface(iservice);
-            mHandler.sendEmptyMessage(MSG_SERVICE_CONNECTED);
-        }
-
-        /**
-         * Called if the service unexpectedly disconnects. This indicates an error.
-         */
-        public void onServiceDisconnected(ComponentName className) {
-            mService = null;
-            mHandler.sendEmptyMessage(MSG_SERVICE_DISCONNECTED);
-        }
-    };
-
-    /**
-     * Implements the AIDL IHotwordServiceCallback interface.
-     */
-    private final IHotwordServiceCallback mServiceCallback = new IHotwordServiceCallback.Stub() {
-
-        public void onHotwordDetectionStarted() {
-            mHandler.sendEmptyMessage(MSG_HOTWORD_STARTED);
-        }
-
-        public void onHotwordDetectionStopped() {
-            mHandler.sendEmptyMessage(MSG_HOTWORD_STOPPED);
-        }
-
-        public void onHotwordDetected(String action) {
-            mHandler.obtainMessage(MSG_HOTWORD_DETECTED, action).sendToTarget();
-        }
-    };
-}
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java
index d4b79b7..eedb7d0 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java
@@ -1213,6 +1213,7 @@
 
     private void addWidgetsFromSettings() {
         if (mSafeModeEnabled || widgetsDisabled()) {
+            addDefaultStatusWidget(0);
             return;
         }
 
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSelectorView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSelectorView.java
index 4fe83fb..40d55cf 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSelectorView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSelectorView.java
@@ -16,16 +16,20 @@
 package com.android.keyguard;
 
 import android.animation.ObjectAnimator;
+import android.app.ActivityManager;
+import android.app.PendingIntent;
 import android.app.SearchManager;
 import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.drawable.Drawable;
-import android.os.Build;
+import android.os.Bundle;
 import android.os.PowerManager;
 import android.os.UserHandle;
 import android.provider.Settings;
+import android.speech.hotword.HotwordRecognitionListener;
+import android.speech.hotword.HotwordRecognizer;
 import android.telephony.TelephonyManager;
 import android.util.AttributeSet;
 import android.util.Log;
@@ -37,15 +41,18 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.internal.widget.multiwaveview.GlowPadView;
 import com.android.internal.widget.multiwaveview.GlowPadView.OnTriggerListener;
-import com.android.keyguard.KeyguardHostView.OnDismissAction;
 
 public class KeyguardSelectorView extends LinearLayout implements KeyguardSecurityView {
     private static final boolean DEBUG = KeyguardHostView.DEBUG;
     private static final String TAG = "SecuritySelectorView";
     private static final String ASSIST_ICON_METADATA_NAME =
         "com.android.systemui.action_assist_icon";
-    // Flag to enable/disable hotword detection on lock screen.
-    private static final boolean FLAG_HOTWORD = false;
+
+    // Don't enable hotword on limited-memory devices.
+    private static final boolean ENABLE_HOTWORD = !ActivityManager.isLowRamDeviceStatic();
+
+    // TODO: Fix this to be non-static.
+    private static HotwordRecognizer sHotwordClient;
 
     private KeyguardSecurityCallback mCallback;
     private GlowPadView mGlowPadView;
@@ -57,15 +64,13 @@
     private LockPatternUtils mLockPatternUtils;
     private SecurityMessageDisplay mSecurityMessageDisplay;
     private Drawable mBouncerFrame;
-    private HotwordServiceClient mHotwordClient;
 
     OnTriggerListener mOnTriggerListener = new OnTriggerListener() {
 
         public void onTrigger(View v, int target) {
             final int resId = mGlowPadView.getResourceIdForTarget(target);
-            if (FLAG_HOTWORD) {
-                maybeStopHotwordDetector();
-            }
+            maybeStopHotwordDetector();
+
             switch (resId) {
                 case R.drawable.ic_action_assist_generic:
                     Intent assistIntent =
@@ -127,12 +132,10 @@
 
         @Override
         public void onPhoneStateChanged(int phoneState) {
-            if (FLAG_HOTWORD) {
-                // We need to stop the hotwording when a phone call comes in
-                // TODO(sansid): This is not really needed if onPause triggers
-                // when we navigate away from the keyguard
-                if (phoneState == TelephonyManager.CALL_STATE_RINGING) {
-                    if (DEBUG) Log.d(TAG, "Stopping due to CALL_STATE_RINGING");
+            if (ENABLE_HOTWORD) {
+                // We need to stop hotword detection when a call state is not idle anymore.
+                if (phoneState != TelephonyManager.CALL_STATE_IDLE) {
+                    if (DEBUG) Log.d(TAG, "Stopping due to call state not being idle");
                     maybeStopHotwordDetector();
                 }
             }
@@ -180,8 +183,8 @@
         mSecurityMessageDisplay = new KeyguardMessageArea.Helper(this);
         View bouncerFrameView = findViewById(R.id.keyguard_selector_view_frame);
         mBouncerFrame = bouncerFrameView.getBackground();
-        if (FLAG_HOTWORD) {
-            mHotwordClient = new HotwordServiceClient(getContext(), mHotwordCallback);
+        if (ENABLE_HOTWORD && sHotwordClient == null) {
+            sHotwordClient = HotwordRecognizer.createHotwordRecognizer(getContext());
         }
     }
 
@@ -286,20 +289,19 @@
     @Override
     public void onPause() {
         KeyguardUpdateMonitor.getInstance(getContext()).removeCallback(mUpdateCallback);
+        maybeStopHotwordDetector();
     }
 
     @Override
     public void onResume(int reason) {
         KeyguardUpdateMonitor.getInstance(getContext()).registerCallback(mUpdateCallback);
         // TODO: Figure out if there's a better way to do it.
-        // Right now we don't get onPause at all, and onResume gets called
-        // multiple times (even when the screen is turned off with VIEW_REVEALED)
+        // onResume gets called multiple times, however we are interested in
+        // the reason to figure out when to start/stop hotword detection.
         if (reason == SCREEN_ON) {
             if (!KeyguardUpdateMonitor.getInstance(getContext()).isSwitchingUser()) {
                 maybeStartHotwordDetector();
             }
-        } else {
-            maybeStopHotwordDetector();
         }
     }
 
@@ -324,15 +326,15 @@
 
     /**
      * Start the hotword detector if:
-     * <li> HOTWORDING_ENABLED is true and
-     * <li> HotwordUnlock is initialized and
+     * <li> FLAG_HOTWORD is true and
+     * <li> Hotword detection is not already running and
      * <li> TelephonyManager is in CALL_STATE_IDLE
      *
      * If this method is called when the screen is off,
-     * it attempts to stop hotwording if it's running.
+     * it attempts to stop hotword detection if it's running.
      */
     private void maybeStartHotwordDetector() {
-        if (FLAG_HOTWORD && mHotwordClient != null) {
+        if (ENABLE_HOTWORD && sHotwordClient != null) {
             if (DEBUG) Log.d(TAG, "maybeStartHotwordDetector()");
             // Don't start it if the screen is off or not showing
             PowerManager powerManager = (PowerManager) getContext().getSystemService(
@@ -347,8 +349,13 @@
                 if (DEBUG) Log.d(TAG, "Call underway, not starting");
                 return;
             }
-            if (!mHotwordClient.start()) {
-                Log.w(TAG, "Failed to start the hotword detector");
+
+            try {
+                sHotwordClient.startRecognition(mHotwordCallback);
+            } catch(Exception ex) {
+                // Don't allow hotword errors to make the keyguard unusable
+                Log.e(TAG, "Failed to start hotword recognition", ex);
+                sHotwordClient = null;
             }
         }
     }
@@ -357,47 +364,59 @@
      * Stop hotword detector if HOTWORDING_ENABLED is true.
      */
     private void maybeStopHotwordDetector() {
-        if (FLAG_HOTWORD && mHotwordClient != null) {
+        if (ENABLE_HOTWORD && sHotwordClient != null) {
             if (DEBUG) Log.d(TAG, "maybeStopHotwordDetector()");
-            mHotwordClient.stop();
+            try {
+                sHotwordClient.stopRecognition();
+            } catch(Exception ex) {
+                // Don't allow hotword errors to make the keyguard unusable
+                Log.e(TAG, "Failed to start hotword recognition", ex);
+            } finally {
+                sHotwordClient = null;
+            }
         }
     }
 
-    private final HotwordServiceClient.Callback mHotwordCallback =
-            new HotwordServiceClient.Callback() {
-        private static final String TAG = "HotwordServiceClient.Callback";
+    private final HotwordRecognitionListener mHotwordCallback = new HotwordRecognitionListener() {
+        private static final String TAG = "HotwordRecognitionListener";
 
-        @Override
-        public void onServiceConnected() {
-            if (DEBUG) Log.d(TAG, "onServiceConnected()");
+        public void onHotwordRecognitionStarted() {
+            if (DEBUG) Log.d(TAG, "onHotwordRecognitionStarted()");
         }
 
-        @Override
-        public void onServiceDisconnected() {
-            if (DEBUG) Log.d(TAG, "onServiceDisconnected()");
+        public void onHotwordRecognitionStopped() {
+            if (DEBUG) Log.d(TAG, "onHotwordRecognitionStopped()");
         }
 
-        @Override
-        public void onHotwordDetectionStarted() {
-            if (DEBUG) Log.d(TAG, "onHotwordDetectionStarted()");
-            // TODO: Change the usage of SecurityMessageDisplay to a better visual indication.
-            mSecurityMessageDisplay.setMessage("\"Ok Google...\"", true);
+        public void onHotwordEvent(int eventType, Bundle eventBundle) {
+            if (DEBUG) Log.d(TAG, "onHotwordEvent: " + eventType);
+            if (eventType == HotwordRecognizer.EVENT_TYPE_STATE_CHANGED) {
+                if (eventBundle != null && eventBundle.containsKey(HotwordRecognizer.PROMPT_TEXT)) {
+                    mSecurityMessageDisplay.setMessage(
+                            eventBundle.getString(HotwordRecognizer.PROMPT_TEXT), true);
+                }
+            }
         }
 
-        @Override
-        public void onHotwordDetectionStopped() {
-            if (DEBUG) Log.d(TAG, "onHotwordDetectionStopped()");
-            // TODO: Change the usage of SecurityMessageDisplay to a better visual indication.
-        }
-
-        @Override
-        public void onHotwordDetected(String action) {
-            if (DEBUG) Log.d(TAG, "onHotwordDetected(" + action + ")");
-            if (action != null) {
-                Intent intent = new Intent(action);
-                mActivityLauncher.launchActivity(intent, true, true, null, null);
+        public void onHotwordRecognized(PendingIntent intent) {
+            if (DEBUG) Log.d(TAG, "onHotwordRecognized");
+            maybeStopHotwordDetector();
+            if (intent != null) {
+                try {
+                    intent.send();
+                } catch (PendingIntent.CanceledException e) {
+                    Log.w(TAG, "Failed to launch PendingIntent. Encountered CanceledException");
+                }
             }
             mCallback.userActivity(0);
+            mCallback.dismiss(false);
+        }
+
+        public void onHotwordError(int errorCode) {
+            if (DEBUG) Log.d(TAG, "onHotwordError: " + errorCode);
+            // TODO: Inspect the error code and handle the errors appropriately
+            // instead of blindly failing.
+            maybeStopHotwordDetector();
         }
     };
 }
diff --git a/packages/Keyguard/src/com/google/android/search/service/IHotwordService.aidl b/packages/Keyguard/src/com/google/android/search/service/IHotwordService.aidl
deleted file mode 100644
index e053d7d..0000000
--- a/packages/Keyguard/src/com/google/android/search/service/IHotwordService.aidl
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.google.android.search.service;
-
-import com.google.android.search.service.IHotwordServiceCallback;
-
-/**
- * Interface exposing hotword detector as a service.
- */
-oneway interface IHotwordService {
-
-    /**
-     * Indicates a desire to start hotword detection.
-     * It's best-effort and the client should rely on
-     * the callbacks to figure out if hotwording was actually
-     * started or not.
-     *
-     * @param a callback to notify of hotword events.
-     */
-    void requestHotwordDetection(in IHotwordServiceCallback callback);
-}
diff --git a/packages/Keyguard/src/com/google/android/search/service/IHotwordServiceCallback.aidl b/packages/Keyguard/src/com/google/android/search/service/IHotwordServiceCallback.aidl
deleted file mode 100644
index 7b3765f..0000000
--- a/packages/Keyguard/src/com/google/android/search/service/IHotwordServiceCallback.aidl
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.google.android.search.service;
-
-/**
- * Interface implemented by users of Hotword service to get callbacks
- * for hotword events.
- */
-oneway interface IHotwordServiceCallback {
-
-    /** Hotword detection start/stop callbacks */
-    void onHotwordDetectionStarted();
-    void onHotwordDetectionStopped();
-
-    /**
-     * Called back when hotword is detected.
-     * The action tells the client what action to take, post hotword-detection.
-     */
-    void onHotwordDetected(in String action);
-}
diff --git a/packages/PrintSpooler/Android.mk b/packages/PrintSpooler/Android.mk
index 8ae0302..f65fe4b 100644
--- a/packages/PrintSpooler/Android.mk
+++ b/packages/PrintSpooler/Android.mk
@@ -24,8 +24,6 @@
 
 LOCAL_JAVA_LIBRARIES := framework-base
 
-LOCAL_CERTIFICATE := platform
-
 LOCAL_PROGUARD_ENABLED := disabled
 
 include $(BUILD_PACKAGE)
diff --git a/packages/PrintSpooler/AndroidManifest.xml b/packages/PrintSpooler/AndroidManifest.xml
index ab7ea09..6fa3ed4 100644
--- a/packages/PrintSpooler/AndroidManifest.xml
+++ b/packages/PrintSpooler/AndroidManifest.xml
@@ -20,18 +20,22 @@
         package="com.android.printspooler"
         android:sharedUserId="android.uid.printspooler"
         android:versionName="1"
-        android:versionCode="1"
-        coreApp="true">
+        android:versionCode="1">
 
-    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="18"/>
+    <!-- Allows an application to call APIs that give it access to all print jobs
+         on the device. Usually an app can access only the print jobs it created.
+    -->
+    <permission
+        android:name="com.android.printspooler.permission.ACCESS_ALL_PRINT_JOBS"
+        android:label="@string/permlab_accessAllPrintJobs"
+        android:description="@string/permdesc_accessAllPrintJobs"
+        android:protectionLevel="signature" />
 
+    <uses-permission android:name="com.android.printspooler.permission.ACCESS_ALL_PRINT_JOBS"/>
     <uses-permission android:name="android.permission.ACCESS_ALL_PRINT_JOBS"/>
     <uses-permission android:name="android.permission.WAKE_LOCK"/>
 
-    <permission android:name="android.permission.BIND_PRINT_SPOOLER_SERVICE"
-        android:label="@string/permlab_bindPrintSpoolerService"
-        android:description="@string/permdesc_bindPrintSpoolerService"
-        android:protectionLevel="signature" />
+    <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="18"/>
 
     <application
             android:allowClearUserData="false"
diff --git a/packages/PrintSpooler/res/values/strings.xml b/packages/PrintSpooler/res/values/strings.xml
index ee3cf84..235a7a1 100644
--- a/packages/PrintSpooler/res/values/strings.xml
+++ b/packages/PrintSpooler/res/values/strings.xml
@@ -94,6 +94,9 @@
     <!-- Template for the notificaiton label for a failed print job. [CHAR LIMIT=25] -->
     <string name="failed_notification_title_template">Printer error <xliff:g id="print_job_name" example="foo.jpg">%1$s</xliff:g></string>
 
+    <!-- Template for the notificaiton label for a blocked print job. [CHAR LIMIT=25] -->
+    <string name="blocked_notification_title_template">Printer blocked <xliff:g id="print_job_name" example="foo.jpg">%1$s</xliff:g></string>
+
     <!-- Label for the notification button for cancelling a print job. [CHAR LIMIT=25] -->
     <string name="cancel">Cancel</string>
 
@@ -103,6 +106,9 @@
     <!-- Message that there is no connection to a printer. [CHAR LIMIT=40] -->
     <string name="no_connection_to_printer">No connection to printer</string>
 
+    <!-- Label for an unknown reason for failed or blocked print job. [CHAR LIMIT=25] -->
+    <string name="reason_unknown">unknown</string>
+
     <!-- Arrays -->
 
     <!-- Color mode labels. -->
@@ -129,12 +135,14 @@
         <item>Range</item>
     </string-array>
 
-    <!-- Title of an application permission, listed so the user can choose
-         whether they want to allow the application to do this. -->
-    <string name="permlab_bindPrintSpoolerService">bind to a print spooler service</string>
-    <!-- Description of an application permission, listed so the user can
-         choose whether they want to allow the application to do this. -->
-    <string name="permdesc_bindPrintSpoolerService">Allows the holder to bind to the top-level
-        interface of a print spooler service. Should never be needed for normal apps.</string>
+    <!-- Permissions -->
+
+    <!-- Title of an application permission, listed so the user can choose whether they want
+         to allow the application to do this. -->
+    <string name="permlab_accessAllPrintJobs">access all print jobs</string>
+    <!-- Description of an application permission, listed so the user can choose whether
+         they want to allow the application to do this. -->
+    <string name="permdesc_accessAllPrintJobs">Allows the holder to access print jobs
+        created by another app. Should never be needed for normal apps.</string>
 
 </resources>
diff --git a/packages/PrintSpooler/src/com/android/printspooler/FusedPrintersProvider.java b/packages/PrintSpooler/src/com/android/printspooler/FusedPrintersProvider.java
index 28fd0e0..ad8d95a 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/FusedPrintersProvider.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/FusedPrintersProvider.java
@@ -75,6 +75,8 @@
 
     private List<PrinterInfo> mFavoritePrinters;
 
+    private PrinterId mTrackedPrinter;
+
     public FusedPrintersProvider(Context context) {
         super(context);
         mPersistenceManager = new PersistenceManager(context);
@@ -166,6 +168,10 @@
     private boolean cancelInternal() {
         if (mDiscoverySession != null
                 && mDiscoverySession.isPrinterDiscoveryStarted()) {
+            if (mTrackedPrinter != null) {
+                mDiscoverySession.stopPrinterStateTracking(mTrackedPrinter);
+                mTrackedPrinter = null;
+            }
             mDiscoverySession.stopPrinterDiscovery();
             return true;
         } else if (mPersistenceManager.isReadHistoryInProgress()) {
@@ -195,10 +201,14 @@
         onStopLoading();
     }
 
-    public void refreshPrinter(PrinterId printerId) {
+    public void setTrackedPrinter(PrinterId printerId) {
         if (isStarted() && mDiscoverySession != null
                 && mDiscoverySession.isPrinterDiscoveryStarted()) {
-            mDiscoverySession.requestPrinterUpdate(printerId);
+            if (mTrackedPrinter != null) {
+                mDiscoverySession.stopPrinterStateTracking(mTrackedPrinter);
+            }
+            mTrackedPrinter = printerId;
+            mDiscoverySession.startPrinterStateTracking(printerId);
         }
     }
 
diff --git a/packages/PrintSpooler/src/com/android/printspooler/NotificationController.java b/packages/PrintSpooler/src/com/android/printspooler/NotificationController.java
index c116d37..43a751c 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/NotificationController.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/NotificationController.java
@@ -32,6 +32,7 @@
 import android.print.IPrintManager;
 import android.print.PrintJobInfo;
 import android.print.PrintManager;
+import android.text.TextUtils;
 import android.util.Log;
 
 /**
@@ -64,22 +65,27 @@
                     + " state:" + PrintJobInfo.stateToString(printJob.getState()));
         }
         switch (printJob.getState()) {
-            case PrintJobInfo.STATE_QUEUED: {
-                createPrintingNotificaiton(printJob);
+            case PrintJobInfo.STATE_QUEUED:
+            case PrintJobInfo.STATE_STARTED: {
+                createPrintingNotification(printJob);
             } break;
 
             case PrintJobInfo.STATE_FAILED: {
-                createFailedNotificaiton(printJob);
+                createFailedNotification(printJob);
             } break;
 
             case PrintJobInfo.STATE_COMPLETED:
             case PrintJobInfo.STATE_CANCELED: {
                 removeNotification(printJob.getId());
             } break;
+
+            case PrintJobInfo.STATE_BLOCKED: {
+                createBlockedNotification(printJob);
+            } break;
         }
     }
 
-    private void createPrintingNotificaiton(PrintJobInfo printJob) {
+    private void createPrintingNotification(PrintJobInfo printJob) {
         Notification.Builder builder = new Notification.Builder(mContext)
                 .setSmallIcon(R.drawable.stat_notify_print)
                 .setContentTitle(mContext.getString(R.string.printing_notification_title_template,
@@ -93,17 +99,36 @@
         mNotificationManager.notify(printJob.getId(), builder.build());
     }
 
-    private void createFailedNotificaiton(PrintJobInfo printJob) {
+    private void createFailedNotification(PrintJobInfo printJob) {
+        String reason = !TextUtils.isEmpty(printJob.getStateReason())
+                ? printJob.getStateReason() : mContext.getString(R.string.reason_unknown);
+
         Notification.Builder builder = new Notification.Builder(mContext)
                 .setSmallIcon(R.drawable.stat_notify_error)
                 .setContentTitle(mContext.getString(R.string.failed_notification_title_template,
                         printJob.getLabel()))
                 .addAction(R.drawable.stat_notify_cancelling, mContext.getString(R.string.cancel),
                         createCancelIntent(printJob))
-                // TODO: Use appropriate icon when assets are ready
                 .addAction(android.R.drawable.ic_secure, mContext.getString(R.string.restart),
                         createRestartIntent(printJob.getId()))
-                .setContentText(printJob.getFailureReason())
+                .setContentText(reason)
+                .setWhen(System.currentTimeMillis())
+                .setOngoing(true)
+                .setShowWhen(true);
+        mNotificationManager.notify(printJob.getId(), builder.build());
+    }
+
+    private void createBlockedNotification(PrintJobInfo printJob) {
+        String reason = !TextUtils.isEmpty(printJob.getStateReason())
+                ? printJob.getStateReason() : mContext.getString(R.string.reason_unknown);
+
+        Notification.Builder builder = new Notification.Builder(mContext)
+                .setSmallIcon(R.drawable.stat_notify_error)
+                .setContentTitle(mContext.getString(R.string.blocked_notification_title_template,
+                        printJob.getLabel()))
+                .addAction(R.drawable.stat_notify_cancelling, mContext.getString(R.string.cancel),
+                        createCancelIntent(printJob))
+                .setContentText(reason)
                 .setWhen(System.currentTimeMillis())
                 .setOngoing(true)
                 .setShowWhen(true);
diff --git a/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java b/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java
index c01d8f8..520331c 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java
@@ -42,6 +42,7 @@
 import android.print.IWriteResultCallback;
 import android.print.PageRange;
 import android.print.PrintAttributes;
+import android.print.PrintAttributes.Margins;
 import android.print.PrintAttributes.MediaSize;
 import android.print.PrintAttributes.Resolution;
 import android.print.PrintDocumentAdapter;
@@ -388,14 +389,20 @@
             final boolean infoChanged = !info.equals(mDocument.info);
             if (infoChanged) {
                 mDocument.info = info;
+                // Set the info.
                 PrintSpoolerService.peekInstance().setPrintJobPrintDocumentInfoNoPersistence(
                         mPrintJobId, info);
             }
 
+            // Update the fitting mode based on the document type.
+            updateCurrentFittingMode(info);
+
             // If the document info or the layout changed, then
             // drop the pages since we have to fetch them again.
             if (infoChanged || layoutChanged) {
                 mDocument.pages = null;
+                PrintSpoolerService.peekInstance().setPrintJobPagesNoPersistence(
+                        mPrintJobId, null);
             }
 
             // No pages means that the user selected an invalid range while we
@@ -466,6 +473,11 @@
 
             mControllerState = CONTROLLER_STATE_WRITE_COMPLETED;
 
+            // Update the document size.
+            File file = PrintSpoolerService.peekInstance()
+                    .generateFileForPrintJob(mPrintJobId);
+            mDocument.info.setDataSize(file.length());
+
             // Update which pages we have fetched.
             mDocument.pages = PageRangeUtils.normalize(pages);
 
@@ -489,7 +501,7 @@
             } else if (PageRangeUtils.contains(mDocument.pages, mRequestedPages)) {
                 // We requested specific pages and got more but not all pages.
                 // Hence, we have to offset appropriately the printed pages to
-                // excle the pages we did not request. Note that pages is
+                // exclude the pages we did not request. Note that pages is
                 // guaranteed to be not null and not empty.
                 final int offset = mDocument.pages[0].getStart() - pages[0].getStart();
                 PageRange[] offsetPages = Arrays.copyOf(mDocument.pages, mDocument.pages.length);
@@ -514,6 +526,10 @@
             }
 
             if (mEditor.isDone()) {
+                // Update the print attributes based on whether the application
+                // handled some of the print attribute constraints, e.g. rotation.
+                updateAndSaveCurrentPrintAttributes(mDocument.info);
+
                 if (mEditor.isPrintingToPdf()) {
                     PrintJobInfo printJob = PrintSpoolerService.peekInstance()
                             .getPrintJobInfo(mPrintJobId, PrintManager.APP_ID_ANY);
@@ -536,6 +552,58 @@
             PrintJobConfigActivity.this.finish();
         }
 
+        private void updateCurrentFittingMode(PrintDocumentInfo document) {
+            // Update the fitting mode based on content type.
+            switch (document.getContentType()) {
+                case PrintDocumentInfo.CONTENT_TYPE_DOCUMENT: {
+                    mCurrPrintAttributes.setFittingMode(
+                            PrintAttributes.FITTING_MODE_SCALE_TO_FIT);
+                } break;
+
+                case PrintDocumentInfo.CONTENT_TYPE_PHOTO: {
+                    mCurrPrintAttributes.setFittingMode(
+                            PrintAttributes.FITTING_MODE_SCALE_TO_FILL);
+                }
+            }
+        }
+
+        private void updateAndSaveCurrentPrintAttributes(PrintDocumentInfo document) {
+            PrintAttributes attributes = mTempPrintAttributes;
+            attributes.copyFrom(mCurrPrintAttributes);
+
+            // Update the orientation
+            if (document.getOrientation() == PrintAttributes.ORIENTATION_LANDSCAPE) {
+                if (attributes.getOrientation() == PrintAttributes.ORIENTATION_LANDSCAPE) {
+                    // If the document is in landscape and we want to print it in
+                    // landscape, then we do not need to rotate, so portrait.
+                    attributes.setOrientation(PrintAttributes.ORIENTATION_PORTRAIT);
+                } else {
+                    // If the document is in landscape and we want to print it in
+                    // portrait, then we have to rotate the content, so landscape.
+                    attributes.setOrientation(PrintAttributes.ORIENTATION_LANDSCAPE);
+                }
+            }
+
+            // Update margins.
+            Margins documentMargins = document.getMargins();
+            if (documentMargins.getLeftMils() != 0
+                    || documentMargins.getTopMils() != 0
+                    || documentMargins.getRightMils() != 0
+                    || documentMargins.getBottomMils() != 0) {
+                // If the application has applied some of the margins, then
+                // the printer should only apply the difference.
+                Margins oldMargins = attributes.getMargins();
+                attributes.setMargins(new Margins(
+                        oldMargins.getLeftMils() - documentMargins.getLeftMils(),
+                        oldMargins.getTopMils() - documentMargins.getTopMils(),
+                        oldMargins.getRightMils() - documentMargins.getRightMils(),
+                        oldMargins.getBottomMils() - documentMargins.getBottomMils()));
+            }
+
+            PrintSpoolerService.peekInstance().setPrintJobAttributesNoPersistence(
+                    mPrintJobId, attributes);
+        }
+
         private final class ControllerHandler extends Handler {
             public static final int MSG_ON_LAYOUT_FINISHED = 1;
             public static final int MSG_ON_LAYOUT_FAILED = 2;
@@ -1054,7 +1122,7 @@
                         (Loader<?>) getLoaderManager().getLoader(
                                 LOADER_ID_PRINTERS_LOADER);
                 if (printersLoader != null) {
-                    printersLoader.refreshPrinter(printer.getId());
+                    printersLoader.setTrackedPrinter(printer.getId());
                 }
             }
         }
@@ -1288,10 +1356,6 @@
             return mEditorState == EDITOR_STATE_CONFIRMED_PRINT;
         }
 
-//        public void confirmPreview() {
-//            mEditorState = EDITOR_STATE_CONFIRMED_PREVIEW;
-//        }
-
         public PageRange[] getRequestedPages() {
             if (hasErrors()) {
                 return null;
@@ -1311,7 +1375,7 @@
                         toIndex = Integer.parseInt(range.substring(
                                 dashIndex + 1, range.length())) - 1;
                     } else {
-                        fromIndex = toIndex = Integer.parseInt(range);
+                        fromIndex = toIndex = Integer.parseInt(range) - 1;
                     }
 
                     PageRange pageRange = new PageRange(fromIndex, toIndex);
@@ -1409,8 +1473,6 @@
                 mOrientationSpinner.setEnabled(false);
                 mRangeOptionsSpinner.setEnabled(false);
                 mPageRangeEditText.setEnabled(false);
-                // TODO: Remove entirely or implement print preview.
-//                mPrintPreviewButton.setEnabled(false);
                 mPrintButton.setEnabled(false);
                 return false;
             }
@@ -1474,10 +1536,6 @@
                 mPageRangeEditText.setVisibility(View.INVISIBLE);
                 mPageRangeTitle.setVisibility(View.INVISIBLE);
 
-//                // Print preview
-//                mPrintPreviewButton.setEnabled(false);
-//                mPrintPreviewButton.setText(getString(R.string.print_preview));
-
                 // Print
                 mPrintButton.setEnabled(false);
 
@@ -1548,6 +1606,8 @@
 
                 // Color mode.
                 final int colorModes = capabilities.getColorModes();
+
+                // If the color modes changed, we update the adapter and the spinner.
                 boolean colorModesChanged = false;
                 if (Integer.bitCount(colorModes) != mColorModeSpinnerAdapter.getCount()) {
                     colorModesChanged = true;
@@ -1567,6 +1627,11 @@
                     }
                 }
                 if (colorModesChanged) {
+                    // Remember the old color mode to try selecting it again.
+                    int oldColorModeNewIndex = AdapterView.INVALID_POSITION;
+                    final int oldColorMode = mCurrPrintAttributes.getColorMode();
+
+                    // Rebuild the adapter data.
                     mColorModeSpinnerAdapter.clear();
                     String[] colorModeLabels = getResources().getStringArray(
                             R.array.color_mode_labels);
@@ -1575,6 +1640,10 @@
                         final int colorBitOffset = Integer.numberOfTrailingZeros(
                                 remainingColorModes);
                         final int colorMode = 1 << colorBitOffset;
+                        if (colorMode == oldColorMode) {
+                            // Update the index of the old selection.
+                            oldColorModeNewIndex = colorBitOffset;
+                        }
                         remainingColorModes &= ~colorMode;
                         mColorModeSpinnerAdapter.add(new SpinnerItem<Integer>(colorMode,
                                 colorModeLabels[colorBitOffset]));
@@ -1585,11 +1654,14 @@
                         mColorModeSpinner.setSelection(AdapterView.INVALID_POSITION);
                     } else {
                         mColorModeSpinner.setEnabled(true);
-                        final int selectedColorModeIndex = Integer.numberOfTrailingZeros(
-                                (colorModes & defaultAttributes.getColorMode()));
-                        if (mColorModeSpinner.getSelectedItemPosition() != selectedColorModeIndex) {
-                            mIgnoreNextColorModeChange = true;
-                            mColorModeSpinner.setSelection(selectedColorModeIndex);
+                        if (oldColorModeNewIndex != AdapterView.INVALID_POSITION) {
+                            // Select the old color mode - nothing really changed.
+                            setColorModeSpinnerSelectionNoCallback(oldColorModeNewIndex);
+                        } else {
+                            final int selectedColorModeIndex = Integer.numberOfTrailingZeros(
+                                    (colorModes & defaultAttributes.getColorMode()));
+                            someAttributeSelectionChanged = setColorModeSpinnerSelectionNoCallback(
+                                    selectedColorModeIndex);
                         }
                     }
                 }
@@ -1597,6 +1669,8 @@
 
                 // Orientation.
                 final int orientations = capabilities.getOrientations();
+
+                // If the orientations changed, we update the adapter and the spinner.
                 boolean orientationsChanged = false;
                 if (Integer.bitCount(orientations) != mOrientationSpinnerAdapter.getCount()) {
                     orientationsChanged = true;
@@ -1617,6 +1691,10 @@
                     }
                 }
                 if (orientationsChanged) {
+                    // Remember the old orientation to try selecting it again.
+                    int oldOrientationNewIndex = AdapterView.INVALID_POSITION;
+                    final int oldOrientation = mCurrPrintAttributes.getOrientation();
+
                     mOrientationSpinnerAdapter.clear();
                     String[] orientationLabels = getResources().getStringArray(
                             R.array.orientation_labels);
@@ -1625,6 +1703,10 @@
                         final int orientationBitOffset = Integer.numberOfTrailingZeros(
                                 remainingOrientations);
                         final int orientation = 1 << orientationBitOffset;
+                        if (orientation == oldOrientation) {
+                            // Update the index of the old selection.
+                            oldOrientationNewIndex = orientationBitOffset;
+                        }
                         remainingOrientations &= ~orientation;
                         mOrientationSpinnerAdapter.add(new SpinnerItem<Integer>(orientation,
                                 orientationLabels[orientationBitOffset]));
@@ -1635,12 +1717,15 @@
                         mOrientationSpinner.setSelection(AdapterView.INVALID_POSITION);
                     } else {
                         mOrientationSpinner.setEnabled(true);
-                        final int selectedOrientationIndex = Integer.numberOfTrailingZeros(
-                                (orientations & defaultAttributes.getOrientation()));
-                        if (mOrientationSpinner.getSelectedItemPosition()
-                                != selectedOrientationIndex) {
-                            mIgnoreNextOrientationChange = true;
-                            mOrientationSpinner.setSelection(selectedOrientationIndex);
+                        if (oldOrientationNewIndex != AdapterView.INVALID_POSITION) {
+                            // Select the old orientation - nothing really changed.
+                            setOrientationSpinnerSelectionNoCallback(oldOrientationNewIndex);
+                        } else {
+                            final int selectedOrientationIndex = Integer.numberOfTrailingZeros(
+                                    (orientations & defaultAttributes.getOrientation()));
+                            someAttributeSelectionChanged =
+                                    setOrientationSpinnerSelectionNoCallback(
+                                            selectedOrientationIndex);
                         }
                     }
                 }
@@ -1648,23 +1733,27 @@
 
                 // Range options
                 PrintDocumentInfo info = mDocument.info;
-                if (info != null && (info.getPageCount() > 1
+                if (info != null && (info.getPageCount() > 0
                         || info.getPageCount() == PrintDocumentInfo.PAGE_COUNT_UNKNOWN)) {
-                    mRangeOptionsSpinner.setEnabled(true);
-                    if (mRangeOptionsSpinner.getSelectedItemPosition() > 0) {
-                        if (!mPageRangeEditText.isEnabled()) {
-                            mPageRangeEditText.setEnabled(true);
-                            mPageRangeEditText.setVisibility(View.VISIBLE);
-                            mPageRangeTitle.setVisibility(View.VISIBLE);
-                            mPageRangeEditText.requestFocus();
-                            InputMethodManager imm = (InputMethodManager)
-                                    getSystemService(INPUT_METHOD_SERVICE);
-                            imm.showSoftInput(mPageRangeEditText, 0);
-                        }
+                    if (info.getPageCount() == 1) {
+                        mRangeOptionsSpinner.setEnabled(false);
                     } else {
-                        mPageRangeEditText.setEnabled(false);
-                        mPageRangeEditText.setVisibility(View.INVISIBLE);
-                        mPageRangeTitle.setVisibility(View.INVISIBLE);
+                        mRangeOptionsSpinner.setEnabled(true);
+                        if (mRangeOptionsSpinner.getSelectedItemPosition() > 0) {
+                            if (!mPageRangeEditText.isEnabled()) {
+                                mPageRangeEditText.setEnabled(true);
+                                mPageRangeEditText.setVisibility(View.VISIBLE);
+                                mPageRangeTitle.setVisibility(View.VISIBLE);
+                                mPageRangeEditText.requestFocus();
+                                InputMethodManager imm = (InputMethodManager)
+                                        getSystemService(INPUT_METHOD_SERVICE);
+                                imm.showSoftInput(mPageRangeEditText, 0);
+                            }
+                        } else {
+                            mPageRangeEditText.setEnabled(false);
+                            mPageRangeEditText.setVisibility(View.INVISIBLE);
+                            mPageRangeTitle.setVisibility(View.INVISIBLE);
+                        }
                     }
                     final int pageCount = mDocument.info.getPageCount();
                     mRangeOptionsTitle.setText(getString(R.string.label_pages,
@@ -1702,15 +1791,8 @@
                             && (TextUtils.isEmpty(mPageRangeEditText.getText()) || hasErrors()))
                         || (mRangeOptionsSpinner.getSelectedItemPosition() == 0
                             && (!mController.hasPerformedLayout() || hasErrors()))) {
-//                    mPrintPreviewButton.setEnabled(false);
                     mPrintButton.setEnabled(false);
                 } else {
-//                    mPrintPreviewButton.setEnabled(true);
-//                    if (hasPdfViewer()) {
-//                        mPrintPreviewButton.setText(getString(R.string.print_preview));
-//                    } else {
-//                        mPrintPreviewButton.setText(getString(R.string.install_for_print_preview));
-//                    }
                     mPrintButton.setEnabled(true);
                 }
 
@@ -1742,6 +1824,24 @@
             return false;
         }
 
+        private boolean setColorModeSpinnerSelectionNoCallback(int position) {
+            if (mColorModeSpinner.getSelectedItemPosition() != position) {
+                mIgnoreNextColorModeChange = true;
+                mColorModeSpinner.setSelection(position);
+                return true;
+            }
+            return false;
+        }
+
+        private boolean setOrientationSpinnerSelectionNoCallback(int position) {
+            if (mOrientationSpinner.getSelectedItemPosition() != position) {
+                mIgnoreNextOrientationChange = true;
+                mOrientationSpinner.setSelection(position);
+                return true;
+            }
+            return false;
+        }
+
         private void updateUiForNewPrinterCapabilities() {
             // The printer changed so we want to start with a clean slate
             // for the print options and let them be populated from the
@@ -1786,13 +1886,6 @@
                     && mPageRangeEditText.getError() != null;
         }
 
-//        private boolean hasPdfViewer() {
-//            Intent intent = new Intent(Intent.ACTION_VIEW);
-//            intent.setType("application/pdf");
-//            return !getPackageManager().queryIntentActivities(intent,
-//                    PackageManager.MATCH_DEFAULT_ONLY).isEmpty();
-//        }
-
         private final class SpinnerItem<T> {
             final T value;
             CharSequence label;
@@ -1998,7 +2091,7 @@
                     .create();
 
                 return new PrinterInfo.Builder(printerId, getString(R.string.save_as_pdf),
-                        PrinterInfo.STATUS_READY)
+                        PrinterInfo.STATUS_IDLE)
                     .setCapabilities(capabilities)
                     .create();
             }
diff --git a/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java b/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java
index c1f4180..dd2598c 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java
@@ -335,7 +335,9 @@
                 final boolean sameState = (state == printJob.getState())
                         || (state == PrintJobInfo.STATE_ANY)
                         || (state == PrintJobInfo.STATE_ANY_VISIBLE_TO_CLIENTS
-                        && printJob.getState() > PrintJobInfo.STATE_CREATED);
+                            && isStateVisibleToUser(printJob.getState()))
+                        || (state == PrintJobInfo.STATE_ANY_ACTIVE
+                            && isActiveState(printJob.getState()));
                 if (sameComponent && sameAppId && sameState) {
                     if (foundPrintJobs == null) {
                         foundPrintJobs = new ArrayList<PrintJobInfo>();
@@ -347,6 +349,11 @@
         return foundPrintJobs;
     }
 
+    private boolean isStateVisibleToUser(int state) {
+        return (isActiveState(state) && (state == PrintJobInfo.STATE_FAILED
+                || state == PrintJobInfo.STATE_COMPLETED|| state == PrintJobInfo.STATE_CANCELED));
+    }
+
     public PrintJobInfo getPrintJobInfo(int printJobId, int appId) {
         synchronized (mLock) {
             final int printJobCount = mPrintJobs.size();
@@ -389,14 +396,12 @@
 
             switch (printJob.getState()) {
                 case PrintJobInfo.STATE_QUEUED:
-                case PrintJobInfo.STATE_STARTED: {
-                    // We have a print job that was queued or started in the
-                    // past
-                    // but the device battery died or a crash occurred. In this
-                    // case
-                    // we assume the print job failed and let the user decide
-                    // whether
-                    // to restart the job or just
+                case PrintJobInfo.STATE_STARTED:
+                case PrintJobInfo.STATE_BLOCKED: {
+                    // We have a print job that was queued or started or blocked in
+                    // the past but the device battery died or a crash occurred. In
+                    // this case we assume the print job failed and let the user
+                    // decide whether to restart the job or just cancel it.
                     setPrintJobState(printJob.getId(), PrintJobInfo.STATE_FAILED,
                             getString(R.string.no_connection_to_printer));
                 }
@@ -501,7 +506,7 @@
                 success = true;
 
                 printJob.setState(state);
-                printJob.setFailureReason(error);
+                printJob.setStateReason(error);
                 mNotificationController.onPrintJobStateChanged(printJob);
 
                 if (DEBUG_PRINT_JOB_LIFECYCLE) {
@@ -568,7 +573,8 @@
     private boolean isActiveState(int printJobState) {
         return printJobState == PrintJobInfo.STATE_CREATED
                 || printJobState == PrintJobInfo.STATE_QUEUED
-                || printJobState == PrintJobInfo.STATE_STARTED;
+                || printJobState == PrintJobInfo.STATE_STARTED
+                || printJobState == PrintJobInfo.STATE_BLOCKED;
     }
 
     public boolean setPrintJobTag(int printJobId, String tag) {
diff --git a/packages/SystemUI/res/drawable-hdpi/arrow_dashed.png b/packages/SystemUI/res/drawable-hdpi/arrow_dashed.png
deleted file mode 100644
index a8075d5..0000000
--- a/packages/SystemUI/res/drawable-hdpi/arrow_dashed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/btn_cling_normal.9.png b/packages/SystemUI/res/drawable-hdpi/btn_cling_normal.9.png
deleted file mode 100644
index aea8beb..0000000
--- a/packages/SystemUI/res/drawable-hdpi/btn_cling_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/btn_cling_pressed.9.png b/packages/SystemUI/res/drawable-hdpi/btn_cling_pressed.9.png
deleted file mode 100644
index ebefd20..0000000
--- a/packages/SystemUI/res/drawable-hdpi/btn_cling_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/btn_default_small_normal.9.png b/packages/SystemUI/res/drawable-hdpi/btn_default_small_normal.9.png
deleted file mode 100644
index 6f456f3..0000000
--- a/packages/SystemUI/res/drawable-hdpi/btn_default_small_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/btn_default_small_normal_disable.9.png b/packages/SystemUI/res/drawable-hdpi/btn_default_small_normal_disable.9.png
deleted file mode 100644
index e592ae6..0000000
--- a/packages/SystemUI/res/drawable-hdpi/btn_default_small_normal_disable.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/btn_default_small_normal_disable_focused.9.png b/packages/SystemUI/res/drawable-hdpi/btn_default_small_normal_disable_focused.9.png
deleted file mode 100644
index c1f87a7..0000000
--- a/packages/SystemUI/res/drawable-hdpi/btn_default_small_normal_disable_focused.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/btn_default_small_pressed.9.png b/packages/SystemUI/res/drawable-hdpi/btn_default_small_pressed.9.png
deleted file mode 100644
index 2d16eda..0000000
--- a/packages/SystemUI/res/drawable-hdpi/btn_default_small_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/btn_default_small_selected.9.png b/packages/SystemUI/res/drawable-hdpi/btn_default_small_selected.9.png
deleted file mode 100644
index 0749413..0000000
--- a/packages/SystemUI/res/drawable-hdpi/btn_default_small_selected.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_launcher_settings.png b/packages/SystemUI/res/drawable-hdpi/ic_launcher_settings.png
deleted file mode 100644
index c02bd42..0000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notification_dnd.png b/packages/SystemUI/res/drawable-hdpi/ic_notification_dnd.png
deleted file mode 100644
index 92bc75c..0000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_notification_dnd.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notification_open.png b/packages/SystemUI/res/drawable-hdpi/ic_notification_open.png
deleted file mode 100644
index cd9a54a..0000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_notification_open.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notifications_normal.png b/packages/SystemUI/res/drawable-hdpi/ic_notifications_normal.png
deleted file mode 100644
index 62afe76..0000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_notifications_normal.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notify_clear_pressed.png b/packages/SystemUI/res/drawable-hdpi/ic_notify_clear_pressed.png
deleted file mode 100644
index 203e232..0000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_notify_clear_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notify_open_pressed.png b/packages/SystemUI/res/drawable-hdpi/ic_notify_open_pressed.png
deleted file mode 100644
index 1a14231..0000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_notify_open_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notify_quicksettings_pressed.png b/packages/SystemUI/res/drawable-hdpi/ic_notify_quicksettings_pressed.png
deleted file mode 100644
index c86710d..0000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_notify_quicksettings_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notify_rotation_off_normal.png b/packages/SystemUI/res/drawable-hdpi/ic_notify_rotation_off_normal.png
deleted file mode 100644
index 4ca1ab8..0000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_notify_rotation_off_normal.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notify_rotation_off_pressed.png b/packages/SystemUI/res/drawable-hdpi/ic_notify_rotation_off_pressed.png
deleted file mode 100644
index 85a4cd2..0000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_notify_rotation_off_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notify_rotation_on_normal.png b/packages/SystemUI/res/drawable-hdpi/ic_notify_rotation_on_normal.png
deleted file mode 100644
index d0cb087..0000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_notify_rotation_on_normal.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notify_rotation_on_pressed.png b/packages/SystemUI/res/drawable-hdpi/ic_notify_rotation_on_pressed.png
deleted file mode 100644
index c1c9e16..0000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_notify_rotation_on_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_notify_settings_pressed.png b/packages/SystemUI/res/drawable-hdpi/ic_notify_settings_pressed.png
deleted file mode 100644
index 5e20eea..0000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_notify_settings_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_auto_rotate.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_auto_rotate.png
index ec509c9..63acea0 100644
--- a/packages/SystemUI/res/drawable-hdpi/ic_qs_auto_rotate.png
+++ b/packages/SystemUI/res/drawable-hdpi/ic_qs_auto_rotate.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_0.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_0.png
index 1bc3866..df727e5 100644
--- a/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_0.png
+++ b/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_bolt.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_bolt.png
deleted file mode 100644
index f7dca8b..0000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_qs_battery_bolt.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_not_connected.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_not_connected.png
index afac50a..e417a19 100644
--- a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_not_connected.png
+++ b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_not_connected.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_ime_default.png
deleted file mode 100644
index 8befeb1..0000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_ime_default.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/recents_blue_glow.9.png b/packages/SystemUI/res/drawable-hdpi/recents_blue_glow.9.png
deleted file mode 100644
index b5d8518..0000000
--- a/packages/SystemUI/res/drawable-hdpi/recents_blue_glow.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/recents_thumbnail_bg_dragging.9.png b/packages/SystemUI/res/drawable-hdpi/recents_thumbnail_bg_dragging.9.png
index 652f66f..080f2f2 100644
--- a/packages/SystemUI/res/drawable-hdpi/recents_thumbnail_bg_dragging.9.png
+++ b/packages/SystemUI/res/drawable-hdpi/recents_thumbnail_bg_dragging.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/recents_thumbnail_bg_normal.9.png b/packages/SystemUI/res/drawable-hdpi/recents_thumbnail_bg_normal.9.png
index d000f7e..8b45500 100644
--- a/packages/SystemUI/res/drawable-hdpi/recents_thumbnail_bg_normal.9.png
+++ b/packages/SystemUI/res/drawable-hdpi/recents_thumbnail_bg_normal.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/recents_thumbnail_bg_press.9.png b/packages/SystemUI/res/drawable-hdpi/recents_thumbnail_bg_press.9.png
index 288d818..e591a7b 100644
--- a/packages/SystemUI/res/drawable-hdpi/recents_thumbnail_bg_press.9.png
+++ b/packages/SystemUI/res/drawable-hdpi/recents_thumbnail_bg_press.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/screenshot_panel.9.png b/packages/SystemUI/res/drawable-hdpi/screenshot_panel.9.png
index 2509321..da56dcc 100644
--- a/packages/SystemUI/res/drawable-hdpi/screenshot_panel.9.png
+++ b/packages/SystemUI/res/drawable-hdpi/screenshot_panel.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_notify_more.png b/packages/SystemUI/res/drawable-hdpi/stat_notify_more.png
index d26e007..2fa0293 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_notify_more.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_notify_more.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_alarm.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_alarm.png
index 773d418..2c55017 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_alarm.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_alarm.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_0.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_0.png
index 140bba3..be6bad3 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_0.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_100.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_100.png
index d4c767b..5382e0a 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_100.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_100.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_15.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_15.png
index 80e00cc..4c60c68 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_15.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_28.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_28.png
index 742ec7c..f526262 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_28.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_28.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_43.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_43.png
index 9182f26..dffa104 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_43.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_43.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_57.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_57.png
index b798c5c..5870080 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_57.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_57.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_71.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_71.png
index 5e85afa..017e5a1 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_71.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_71.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_85.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_85.png
index b2fb2c6..362b38d 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_85.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_85.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim0.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim0.png
index 9d8d881..b225e7f 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim0.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim100.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim100.png
index b39817e..e676c2a 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim100.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim100.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim15.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim15.png
index fb3e80d..b76a124 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim15.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim28.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim28.png
index d5458a5..843b833 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim28.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim28.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim43.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim43.png
index 1ddef7b..ac0b5ef 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim43.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim43.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim57.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim57.png
index f8cf27b..807fdc5 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim57.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim57.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim71.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim71.png
index 7bd14f1..cdbdea2 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim71.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim71.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim85.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim85.png
index f2190c7..269eab1 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim85.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_battery_charge_anim85.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_bluetooth.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_bluetooth.png
index 46a71f3..1489b90 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_bluetooth.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_bluetooth.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_1x.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_1x.png
index 203b0f9..073f285 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_1x.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_1x.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_3g.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_3g.png
index 98d1418..83759be 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_3g.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_3g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_4g.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_4g.png
index 3d2d921..bec5e3b 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_4g.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_4g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_e.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_e.png
index 7737dad..cbf2cc7 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_e.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_e.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_g.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_g.png
index 77d1c18..90cb8c3 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_g.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_h.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_h.png
index 104797d..24d0606 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_h.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_h.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_lte.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_lte.png
index 19df124..1b1ac75 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_lte.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_lte.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_roam.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_roam.png
index 2c81288..1e66cb9 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_roam.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_data_connected_roam.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_device_access_location_found.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_device_access_location_found.png
index ddf6b12..9befc34 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_device_access_location_found.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_device_access_location_found.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_no_sim.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_no_sim.png
index b217592..fe7d280 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_no_sim.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_no_sim.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_ringer_silent.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_ringer_silent.png
index 859f7b1..58f67d0 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_ringer_silent.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_ringer_silent.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_ringer_vibrate.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_ringer_vibrate.png
index 2f2f291..b794c9a 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_ringer_vibrate.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_ringer_vibrate.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_roaming_cdma_0.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_roaming_cdma_0.png
index 20c7a79..a59c844 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_roaming_cdma_0.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_roaming_cdma_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0.png
index de6988f..6253d9a 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0_fully.png
index e322aa1..6253d9a 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0_fully.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_0_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1.png
index cf9c992..0bed6d9 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1_fully.png
index 4892842..0b27331 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1_fully.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2.png
index 4273a52..6bb92a3 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2_fully.png
index 201689b..c77c37f 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2_fully.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3.png
index 0457c50..92e6837 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3_fully.png
index 22dc516..269eae2 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3_fully.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4.png
index 2fdea79..ac2eaf0 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4_fully.png
index 8c4ed12..d9da0d9 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4_fully.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_null.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_null.png
index 56c497a..e02a84b 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_null.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_sync.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_sync.png
index 9013bc6..2dc2b17 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_sync.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_sync.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_sync_error.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_sync_error.png
index 38d04f2..70f839f 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_sync_error.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_sync_error.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_0.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_0.png
index 80d3e75..986e7fb 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_0.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1.png
index 7d8b7bec..a5795ed 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1_fully.png
index d3039d7..b647f45 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1_fully.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2.png
index 7760ba9..02144e5 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2_fully.png
index 491496b..7eb285f 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2_fully.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3.png
index c9ccc9c..20364a3 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3_fully.png
index eb46a00..169d684 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3_fully.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4.png
index c54d565..850150a 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4_fully.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4_fully.png
index df18ccc..7279d5a 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4_fully.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_null.png b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_null.png
index 88dfcb5..546a222 100644
--- a/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_null.png
+++ b/packages/SystemUI/res/drawable-hdpi/stat_sys_wifi_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/status_bar_bg_tile.png b/packages/SystemUI/res/drawable-hdpi/status_bar_bg_tile.png
deleted file mode 100644
index aee197c..0000000
--- a/packages/SystemUI/res/drawable-hdpi/status_bar_bg_tile.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/status_bar_close_off.9.png b/packages/SystemUI/res/drawable-hdpi/status_bar_close_off.9.png
index 0c301ab..6feb622 100644
--- a/packages/SystemUI/res/drawable-hdpi/status_bar_close_off.9.png
+++ b/packages/SystemUI/res/drawable-hdpi/status_bar_close_off.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/status_bar_close_on.9.png b/packages/SystemUI/res/drawable-hdpi/status_bar_close_on.9.png
index ec0424a..eeee60f 100644
--- a/packages/SystemUI/res/drawable-hdpi/status_bar_close_on.9.png
+++ b/packages/SystemUI/res/drawable-hdpi/status_bar_close_on.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/status_bar_hr.9.png b/packages/SystemUI/res/drawable-hdpi/status_bar_hr.9.png
deleted file mode 100644
index f5e6031..0000000
--- a/packages/SystemUI/res/drawable-hdpi/status_bar_hr.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/title_bar_shadow.9.png b/packages/SystemUI/res/drawable-hdpi/title_bar_shadow.9.png
deleted file mode 100644
index 4650417..0000000
--- a/packages/SystemUI/res/drawable-hdpi/title_bar_shadow.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_notifications_normal.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_notifications_normal.png
deleted file mode 100644
index a937a7d..0000000
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_notifications_normal.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_notify_clear_pressed.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_notify_clear_pressed.png
deleted file mode 100644
index f9489bb..0000000
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_notify_clear_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_notify_open_pressed.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_notify_open_pressed.png
deleted file mode 100644
index c02c794..0000000
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_notify_open_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_notify_quicksettings_pressed.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_notify_quicksettings_pressed.png
deleted file mode 100644
index 293debc..0000000
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_notify_quicksettings_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_1x.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_1x.png
index ff8fd17..60a7341 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_1x.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_1x.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_3g.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_3g.png
index 23a41ea..23b47b6 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_3g.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_3g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_4g.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_4g.png
index ba6aa1b..6601913 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_4g.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_4g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_e.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_e.png
index a767c99..2334bfc 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_e.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_e.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_g.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_g.png
index 5126b1c..b410ee1 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_g.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_h.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_h.png
index e38a907..91810f8 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_h.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_h.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_lte.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_lte.png
index 75d22cf..6a7eb08 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_lte.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_lte.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_roam.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_roam.png
index bf7c364..1c69293 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_roam.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_data_connected_roam.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_0.png
index 7a89d58..4ecb2a8 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_0.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_0_fully.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_0_fully.png
index 062b5a5..f0b0588 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_0_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_0_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_1.png
index 9f782ea..2c86ddf 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_1.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_1_fully.png
index c36ced8..508a073 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_1_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_2.png
index 47c4492..6232c94 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_2.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_2_fully.png
index 440288c..73c5c2c 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_2_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_3.png
index 23cde12..49c0c0b 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_3.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_3_fully.png
index 4b657fc..a03ac38 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_3_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_4.png
index 6f0c344..21e5ae8 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_4.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_4_fully.png
index d221ab7..8cfc0f8 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_4_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_null.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_null.png
index d0970d9..ecca5d5 100644
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_null.png
+++ b/packages/SystemUI/res/drawable-ldrtl-hdpi/stat_sys_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_notifications_normal.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_notifications_normal.png
deleted file mode 100644
index 78c4a5f..0000000
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_notifications_normal.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_notify_clear_pressed.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_notify_clear_pressed.png
deleted file mode 100644
index 5bba00f..0000000
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_notify_clear_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_notify_open_pressed.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_notify_open_pressed.png
deleted file mode 100644
index 032ce42..0000000
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_notify_open_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_notify_quicksettings_pressed.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_notify_quicksettings_pressed.png
deleted file mode 100644
index 369bb61..0000000
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_notify_quicksettings_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_1x.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_1x.png
index 4881c91..7f0e705 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_1x.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_1x.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_3g.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_3g.png
index e130066..b4ee3ff 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_3g.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_3g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_4g.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_4g.png
index 468ad9e..38e009f 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_4g.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_4g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_e.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_e.png
index 0acd2ec..8cb3f6a 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_e.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_e.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_g.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_g.png
index b6bf038..bc68ae6 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_g.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_h.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_h.png
index f4a0192..65bc672 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_h.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_h.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_lte.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_lte.png
index f2324d2..a3c5aca 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_lte.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_lte.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_roam.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_roam.png
index aa12d4f..7234f40 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_roam.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_data_connected_roam.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_0.png
index ae17e09..bea4247 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_0.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_0_fully.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_0_fully.png
index fd018d4..3fda61d 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_0_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_0_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_1.png
index 366b0f5..28dd0ab 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_1.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_1_fully.png
index 41afb7d..7c01b40 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_1_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_2.png
index 9ae4486..dbd3c59 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_2.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_2_fully.png
index 9d1dfb8..2cf3eff 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_2_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_3.png
index 6bcd8dd..19cdc61 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_3.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_3_fully.png
index f062aa0..0478d4a 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_3_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_4.png
index a7cc078..126e31d 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_4.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_4_fully.png
index c396935..d32e309 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_4_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_null.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_null.png
index da9ba59..b961902 100644
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_null.png
+++ b/packages/SystemUI/res/drawable-ldrtl-mdpi/stat_sys_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_notifications_normal.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_notifications_normal.png
deleted file mode 100644
index a2787eb..0000000
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_notifications_normal.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_notify_clear_pressed.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_notify_clear_pressed.png
deleted file mode 100644
index c9d50c0..0000000
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_notify_clear_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_notify_open_pressed.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_notify_open_pressed.png
deleted file mode 100644
index c736dcd..0000000
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_notify_open_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_notify_quicksettings_pressed.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_notify_quicksettings_pressed.png
deleted file mode 100644
index 3add352..0000000
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_notify_quicksettings_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_1x.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_1x.png
index 803c9de..fe0bb54 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_1x.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_1x.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_3g.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_3g.png
index 0faddb6..d9f6f33 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_3g.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_3g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_4g.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_4g.png
index 669b15e..75bb86a 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_4g.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_4g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_e.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_e.png
index 2389b7d..0318f1a 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_e.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_e.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_g.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_g.png
index 64332d1..ef2f061 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_g.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_h.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_h.png
index c48ae79..6fbcc0e 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_h.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_h.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_lte.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_lte.png
index 8370507..1b6f7f5 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_lte.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_lte.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_roam.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_roam.png
index 098e702..2ccb681 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_roam.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_data_connected_roam.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_0.png
index e36ccf5..dca7457 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_0.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_0_fully.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_0_fully.png
index 194610a..474795c 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_0_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_0_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_1.png
index bcade5d..8718fa8 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_1.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_1_fully.png
index 69558d8..6710650 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_1_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_2.png
index 2b894ba..dcfd2d1 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_2.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_2_fully.png
index 72a4bbf..caa4189 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_2_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_3.png
index 1c385ea..69cc6c4 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_3.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_3_fully.png
index 6a7efed..7e0158f 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_3_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_4.png
index a56bcdb..9d5b2c7 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_4.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_4_fully.png
index b9c504a..03b5c55 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_4_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_null.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_null.png
index 29b85f6..2ef75ac 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_null.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xhdpi/stat_sys_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_1x.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_1x.png
index 5eb8c7d..6ba908b 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_1x.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_1x.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_3g.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_3g.png
index 6756bbe..c4de9e5 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_3g.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_3g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_4g.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_4g.png
index 68cf3fd..c5b5ec3 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_4g.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_4g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_e.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_e.png
index 5f733a0..80d8b40 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_e.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_e.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_g.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_g.png
index 0a45a9e..03377e2 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_g.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_h.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_h.png
index b483c2f..4dca8f2 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_h.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_h.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_lte.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_lte.png
index 227402b..9d3346f 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_lte.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_lte.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_roam.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_roam.png
index c54954b..dd0d6b5 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_roam.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_data_connected_roam.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_0.png
index 783c194..db8d8c1 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_0.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_0_fully.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_0_fully.png
index 49e847d..db8d8c1 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_0_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_0_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_1.png
index 8e88258..1d21ea1 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_1.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_1_fully.png
index f6ea918..d1609d6 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_1_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_2.png
index e31b4f2..fe80d3d 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_2.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_2_fully.png
index e583414..ef73123 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_2_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_3.png
index d030c84..a80d45a 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_3.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_3_fully.png
index 03a0f61..d40cb3f 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_3_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_4.png
index 48bcd0b..880a735 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_4.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_4_fully.png
index bb7e7e3..f11bfff 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_4_fully.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_null.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_null.png
index 8e41679..e0c5408 100644
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_null.png
+++ b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/stat_sys_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/arrow_dashed.png b/packages/SystemUI/res/drawable-mdpi/arrow_dashed.png
deleted file mode 100644
index c17c668..0000000
--- a/packages/SystemUI/res/drawable-mdpi/arrow_dashed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/btn_cling_normal.9.png b/packages/SystemUI/res/drawable-mdpi/btn_cling_normal.9.png
deleted file mode 100644
index 43a407e..0000000
--- a/packages/SystemUI/res/drawable-mdpi/btn_cling_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/btn_cling_pressed.9.png b/packages/SystemUI/res/drawable-mdpi/btn_cling_pressed.9.png
deleted file mode 100644
index bf0c8cb..0000000
--- a/packages/SystemUI/res/drawable-mdpi/btn_cling_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/btn_default_small_normal.9.png b/packages/SystemUI/res/drawable-mdpi/btn_default_small_normal.9.png
deleted file mode 100644
index 9b59b05..0000000
--- a/packages/SystemUI/res/drawable-mdpi/btn_default_small_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/btn_default_small_normal_disable.9.png b/packages/SystemUI/res/drawable-mdpi/btn_default_small_normal_disable.9.png
deleted file mode 100644
index b517af6..0000000
--- a/packages/SystemUI/res/drawable-mdpi/btn_default_small_normal_disable.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/btn_default_small_normal_disable_focused.9.png b/packages/SystemUI/res/drawable-mdpi/btn_default_small_normal_disable_focused.9.png
deleted file mode 100644
index 019f33a..0000000
--- a/packages/SystemUI/res/drawable-mdpi/btn_default_small_normal_disable_focused.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/btn_default_small_pressed.9.png b/packages/SystemUI/res/drawable-mdpi/btn_default_small_pressed.9.png
deleted file mode 100644
index 6ce1bd3..0000000
--- a/packages/SystemUI/res/drawable-mdpi/btn_default_small_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/btn_default_small_selected.9.png b/packages/SystemUI/res/drawable-mdpi/btn_default_small_selected.9.png
deleted file mode 100644
index 0633543..0000000
--- a/packages/SystemUI/res/drawable-mdpi/btn_default_small_selected.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_launcher_settings.png b/packages/SystemUI/res/drawable-mdpi/ic_launcher_settings.png
deleted file mode 100644
index 05cdd9a..0000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notification_dnd.png b/packages/SystemUI/res/drawable-mdpi/ic_notification_dnd.png
deleted file mode 100644
index fd2bcb2..0000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_notification_dnd.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notification_open.png b/packages/SystemUI/res/drawable-mdpi/ic_notification_open.png
deleted file mode 100644
index 5661eaf..0000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_notification_open.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notifications_normal.png b/packages/SystemUI/res/drawable-mdpi/ic_notifications_normal.png
deleted file mode 100644
index 62afe76..0000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_notifications_normal.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notify_clear_pressed.png b/packages/SystemUI/res/drawable-mdpi/ic_notify_clear_pressed.png
deleted file mode 100644
index f1f6b00..0000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_notify_clear_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notify_open_pressed.png b/packages/SystemUI/res/drawable-mdpi/ic_notify_open_pressed.png
deleted file mode 100644
index 549c5efd..0000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_notify_open_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notify_quicksettings_pressed.png b/packages/SystemUI/res/drawable-mdpi/ic_notify_quicksettings_pressed.png
deleted file mode 100644
index 322d1a7..0000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_notify_quicksettings_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notify_rotation_off_normal.png b/packages/SystemUI/res/drawable-mdpi/ic_notify_rotation_off_normal.png
deleted file mode 100644
index 77da014..0000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_notify_rotation_off_normal.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notify_rotation_off_pressed.png b/packages/SystemUI/res/drawable-mdpi/ic_notify_rotation_off_pressed.png
deleted file mode 100644
index f132d5c..0000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_notify_rotation_off_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notify_rotation_on_normal.png b/packages/SystemUI/res/drawable-mdpi/ic_notify_rotation_on_normal.png
deleted file mode 100644
index 1637209..0000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_notify_rotation_on_normal.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notify_rotation_on_pressed.png b/packages/SystemUI/res/drawable-mdpi/ic_notify_rotation_on_pressed.png
deleted file mode 100644
index 4d8fbde..0000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_notify_rotation_on_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_notify_settings_pressed.png b/packages/SystemUI/res/drawable-mdpi/ic_notify_settings_pressed.png
deleted file mode 100644
index 0c3fdcd..0000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_notify_settings_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_auto_rotate.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_auto_rotate.png
index 93be4c2..ac6c1cf 100644
--- a/packages/SystemUI/res/drawable-mdpi/ic_qs_auto_rotate.png
+++ b/packages/SystemUI/res/drawable-mdpi/ic_qs_auto_rotate.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_0.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_0.png
index 3a8f636..b6bfbdb 100644
--- a/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_0.png
+++ b/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_bolt.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_bolt.png
deleted file mode 100644
index b01d7d0..0000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_qs_battery_bolt.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_not_connected.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_not_connected.png
index 859c7da..b01b27f 100644
--- a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_not_connected.png
+++ b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_not_connected.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_ime_default.png
deleted file mode 100644
index 1cacf77..0000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_ime_default.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/recents_blue_glow.9.png b/packages/SystemUI/res/drawable-mdpi/recents_blue_glow.9.png
deleted file mode 100644
index 5744885..0000000
--- a/packages/SystemUI/res/drawable-mdpi/recents_blue_glow.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/recents_thumbnail_bg_dragging.9.png b/packages/SystemUI/res/drawable-mdpi/recents_thumbnail_bg_dragging.9.png
index 6f4d658..60dc3f2 100644
--- a/packages/SystemUI/res/drawable-mdpi/recents_thumbnail_bg_dragging.9.png
+++ b/packages/SystemUI/res/drawable-mdpi/recents_thumbnail_bg_dragging.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/recents_thumbnail_bg_normal.9.png b/packages/SystemUI/res/drawable-mdpi/recents_thumbnail_bg_normal.9.png
index f19dc93..4b7de52 100644
--- a/packages/SystemUI/res/drawable-mdpi/recents_thumbnail_bg_normal.9.png
+++ b/packages/SystemUI/res/drawable-mdpi/recents_thumbnail_bg_normal.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/recents_thumbnail_bg_press.9.png b/packages/SystemUI/res/drawable-mdpi/recents_thumbnail_bg_press.9.png
index 10e4fd2..7dfea4c 100644
--- a/packages/SystemUI/res/drawable-mdpi/recents_thumbnail_bg_press.9.png
+++ b/packages/SystemUI/res/drawable-mdpi/recents_thumbnail_bg_press.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/screenshot_panel.9.png b/packages/SystemUI/res/drawable-mdpi/screenshot_panel.9.png
index be1cd31..295e91f 100644
--- a/packages/SystemUI/res/drawable-mdpi/screenshot_panel.9.png
+++ b/packages/SystemUI/res/drawable-mdpi/screenshot_panel.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_notify_more.png b/packages/SystemUI/res/drawable-mdpi/stat_notify_more.png
index b11cf79..d7a48f2 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_notify_more.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_notify_more.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_alarm.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_alarm.png
index 7640c87..c6dc466 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_alarm.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_alarm.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_0.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_0.png
index b3211ea..017023e 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_0.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_100.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_100.png
index 71c2b02..09f30c3 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_100.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_100.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_15.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_15.png
index 31a88ba..580a81c 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_15.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_28.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_28.png
index bf61fb0..6b4383d 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_28.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_28.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_43.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_43.png
index 712b5f9..9d30447 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_43.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_43.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_57.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_57.png
index 50ee052..3c4c07f 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_57.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_57.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_71.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_71.png
index d29047b..b543639 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_71.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_71.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_85.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_85.png
index 9fb80df..3c59cbb 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_85.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_85.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim0.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim0.png
index 97bce0c..3ae1228 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim0.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim100.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim100.png
index ab917d7..cc4d343 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim100.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim100.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim15.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim15.png
index a170663..e26142f 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim15.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim28.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim28.png
index 38589cf..f088b6b 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim28.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim28.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim43.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim43.png
index 3e4b7be..bbbe14a 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim43.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim43.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim57.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim57.png
index ad69401..d4370fd 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim57.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim57.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim71.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim71.png
index 0985b4e..82057f8 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim71.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim71.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim85.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim85.png
index d0700fb..faacde9 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim85.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_battery_charge_anim85.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_bluetooth.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_bluetooth.png
index 891123e..a28235b 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_bluetooth.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_bluetooth.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_1x.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_1x.png
index 3dfe53a..a4c7ed0e 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_1x.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_1x.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_3g.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_3g.png
index 0f3350b..11e4762 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_3g.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_3g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_4g.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_4g.png
index 3ae9b4d..503e155 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_4g.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_4g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_e.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_e.png
index d110a86..2be8a4f 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_e.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_e.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_g.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_g.png
index da23dd8..8efc4ed 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_g.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_h.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_h.png
index 7b3bdba..e691780 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_h.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_h.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_lte.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_lte.png
index 6f07f33..df01445 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_lte.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_lte.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_roam.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_roam.png
index ff107ca..0bc6e31 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_roam.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_data_connected_roam.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_device_access_location_found.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_device_access_location_found.png
index f698605..2e24f6f 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_device_access_location_found.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_device_access_location_found.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_no_sim.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_no_sim.png
index 362dcd4..6a08773 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_no_sim.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_no_sim.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_ringer_silent.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_ringer_silent.png
index 24717d7..1e05a91 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_ringer_silent.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_ringer_silent.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_ringer_vibrate.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_ringer_vibrate.png
index a77fe7f..f4afa52 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_ringer_vibrate.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_ringer_vibrate.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_roaming_cdma_0.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_roaming_cdma_0.png
index e0824d2..876d9ee 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_roaming_cdma_0.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_roaming_cdma_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0.png
index 43f5468..55173f8 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0_fully.png
index cadcd03..55173f8 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0_fully.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_0_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1.png
index 54e0685..6649d7c 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1_fully.png
index 2efaf45..dcfe5b4 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1_fully.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2.png
index d3bc458..be3fe62 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2_fully.png
index 9c3f44c..734c52a 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2_fully.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3.png
index a7ba08a..0deb868 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3_fully.png
index e16bee6..d808990 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3_fully.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4.png
index 7e1e8de..f890c2b 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4_fully.png
index e599443..0e11ce8 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4_fully.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_null.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_null.png
index 688b6d6..1ffeaa3 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_null.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_sync.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_sync.png
index 1cacf93..ad5b2ff 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_sync.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_sync.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_sync_error.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_sync_error.png
index 5425af4..6db607d 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_sync_error.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_sync_error.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_0.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_0.png
index 0999ac1..716cc7c 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_0.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1.png
index f0cbe4b..5891ff0 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1_fully.png
index d495b0d..188ea3d 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1_fully.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2.png
index 970aee9..b42650f 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2_fully.png
index 33e8390..17680ce 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2_fully.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3.png
index c1e5118..add0a93 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3_fully.png
index ce25a0b..7023c4f 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3_fully.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4.png
index b4d24d1..6f2a767 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4_fully.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4_fully.png
index c4b47e0..318bfd5 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4_fully.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_null.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_null.png
index e1f2b75..26ea7b6 100644
--- a/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_null.png
+++ b/packages/SystemUI/res/drawable-mdpi/stat_sys_wifi_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/status_bar_bg_tile.png b/packages/SystemUI/res/drawable-mdpi/status_bar_bg_tile.png
deleted file mode 100644
index 6579ff9..0000000
--- a/packages/SystemUI/res/drawable-mdpi/status_bar_bg_tile.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/status_bar_close_off.9.png b/packages/SystemUI/res/drawable-mdpi/status_bar_close_off.9.png
index 5c577cb..bd1cd12 100644
--- a/packages/SystemUI/res/drawable-mdpi/status_bar_close_off.9.png
+++ b/packages/SystemUI/res/drawable-mdpi/status_bar_close_off.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/status_bar_close_on.9.png b/packages/SystemUI/res/drawable-mdpi/status_bar_close_on.9.png
index 7efb502..c73ff35 100644
--- a/packages/SystemUI/res/drawable-mdpi/status_bar_close_on.9.png
+++ b/packages/SystemUI/res/drawable-mdpi/status_bar_close_on.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/status_bar_hr.9.png b/packages/SystemUI/res/drawable-mdpi/status_bar_hr.9.png
deleted file mode 100644
index f5e6031..0000000
--- a/packages/SystemUI/res/drawable-mdpi/status_bar_hr.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/title_bar_shadow.9.png b/packages/SystemUI/res/drawable-mdpi/title_bar_shadow.9.png
deleted file mode 100644
index f334023..0000000
--- a/packages/SystemUI/res/drawable-mdpi/title_bar_shadow.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_ime_default.png
deleted file mode 100644
index 447e7ae..0000000
--- a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_ime_default.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_ime_default.png
deleted file mode 100644
index 735e763..0000000
--- a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_ime_default.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_ime_default.png
deleted file mode 100644
index ff1f130..0000000
--- a/packages/SystemUI/res/drawable-sw600dp-xhdpi/ic_sysbar_ime_default.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-xxhdpi/heads_up_window_bg.9.png b/packages/SystemUI/res/drawable-sw600dp-xxhdpi/heads_up_window_bg.9.png
new file mode 100644
index 0000000..586a738
--- /dev/null
+++ b/packages/SystemUI/res/drawable-sw600dp-xxhdpi/heads_up_window_bg.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-xxhdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-sw600dp-xxhdpi/ic_sysbar_ime_default.png
deleted file mode 100644
index 2ae1dc0..0000000
--- a/packages/SystemUI/res/drawable-sw600dp-xxhdpi/ic_sysbar_ime_default.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw600dp-xxhdpi/notification_panel_bg.9.png b/packages/SystemUI/res/drawable-sw600dp-xxhdpi/notification_panel_bg.9.png
new file mode 100644
index 0000000..8703e1d
--- /dev/null
+++ b/packages/SystemUI/res/drawable-sw600dp-xxhdpi/notification_panel_bg.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_ime_default.png
deleted file mode 100644
index 47f0745..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_ime_default.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_ime_pressed.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_ime_pressed.png
deleted file mode 100644
index 490504e..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_ime_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/notify_panel_clock_bg_normal.9.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/notify_panel_clock_bg_normal.9.png
deleted file mode 100644
index 88137e8..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-hdpi/notify_panel_clock_bg_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/notify_panel_clock_bg_pressed.9.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/notify_panel_clock_bg_pressed.9.png
deleted file mode 100644
index 6507a51..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-hdpi/notify_panel_clock_bg_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/recents_blue_glow.9.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/recents_blue_glow.9.png
deleted file mode 100644
index 4ac131a..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-hdpi/recents_blue_glow.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/sysbar_notification_panel_bg.9.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/sysbar_notification_panel_bg.9.png
deleted file mode 100644
index 0c20ba2..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-hdpi/sysbar_notification_panel_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_ime_default.png
deleted file mode 100644
index 33edce0..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_ime_default.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_ime_pressed.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_ime_pressed.png
deleted file mode 100644
index 8bab6cf..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_ime_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/notify_panel_clock_bg_normal.9.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/notify_panel_clock_bg_normal.9.png
deleted file mode 100644
index 798f589..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-mdpi/notify_panel_clock_bg_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/notify_panel_clock_bg_pressed.9.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/notify_panel_clock_bg_pressed.9.png
deleted file mode 100644
index 73247e5..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-mdpi/notify_panel_clock_bg_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/recents_blue_glow.9.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/recents_blue_glow.9.png
deleted file mode 100644
index 4362836..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-mdpi/recents_blue_glow.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/sysbar_notification_panel_bg.9.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/sysbar_notification_panel_bg.9.png
deleted file mode 100644
index 56cd238..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-mdpi/sysbar_notification_panel_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-tvdpi/sysbar_notification_panel_bg.9.png b/packages/SystemUI/res/drawable-sw720dp-tvdpi/sysbar_notification_panel_bg.9.png
deleted file mode 100644
index 571a7a5..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-tvdpi/sysbar_notification_panel_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_ime_default.png
deleted file mode 100644
index d670177..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_ime_default.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_ime_pressed.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_ime_pressed.png
deleted file mode 100644
index c9f0302..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_ime_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/notify_panel_clock_bg_normal.9.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/notify_panel_clock_bg_normal.9.png
deleted file mode 100644
index 2b46c89..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-xhdpi/notify_panel_clock_bg_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/notify_panel_clock_bg_pressed.9.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/notify_panel_clock_bg_pressed.9.png
deleted file mode 100644
index dd476b7..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-xhdpi/notify_panel_clock_bg_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/recents_blue_glow.9.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/recents_blue_glow.9.png
deleted file mode 100644
index 3938502..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-xhdpi/recents_blue_glow.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/sysbar_notification_panel_bg.9.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/sysbar_notification_panel_bg.9.png
deleted file mode 100644
index 3f05767..0000000
--- a/packages/SystemUI/res/drawable-sw720dp-xhdpi/sysbar_notification_panel_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/arrow_dashed.png b/packages/SystemUI/res/drawable-xhdpi/arrow_dashed.png
deleted file mode 100644
index c26ed9c..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/arrow_dashed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/btn_cling_normal.9.png b/packages/SystemUI/res/drawable-xhdpi/btn_cling_normal.9.png
deleted file mode 100644
index 35511d6..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/btn_cling_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/btn_cling_pressed.9.png b/packages/SystemUI/res/drawable-xhdpi/btn_cling_pressed.9.png
deleted file mode 100644
index a38b40f..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/btn_cling_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/btn_default_small_normal.9.png b/packages/SystemUI/res/drawable-xhdpi/btn_default_small_normal.9.png
deleted file mode 100644
index 5e601d2..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/btn_default_small_normal.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/btn_default_small_normal_disable.9.png b/packages/SystemUI/res/drawable-xhdpi/btn_default_small_normal_disable.9.png
deleted file mode 100644
index ed92cd0..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/btn_default_small_normal_disable.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/btn_default_small_normal_disable_focused.9.png b/packages/SystemUI/res/drawable-xhdpi/btn_default_small_normal_disable_focused.9.png
deleted file mode 100644
index f77dbfb..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/btn_default_small_normal_disable_focused.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/btn_default_small_pressed.9.png b/packages/SystemUI/res/drawable-xhdpi/btn_default_small_pressed.9.png
deleted file mode 100644
index e34107b..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/btn_default_small_pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/btn_default_small_selected.9.png b/packages/SystemUI/res/drawable-xhdpi/btn_default_small_selected.9.png
deleted file mode 100644
index 8f70177..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/btn_default_small_selected.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_launcher_settings.png b/packages/SystemUI/res/drawable-xhdpi/ic_launcher_settings.png
deleted file mode 100644
index 2b2907b..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notification_dnd.png b/packages/SystemUI/res/drawable-xhdpi/ic_notification_dnd.png
deleted file mode 100644
index 0e926ab..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_notification_dnd.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notification_open.png b/packages/SystemUI/res/drawable-xhdpi/ic_notification_open.png
deleted file mode 100644
index 98455cf..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_notification_open.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notifications_normal.png b/packages/SystemUI/res/drawable-xhdpi/ic_notifications_normal.png
deleted file mode 100644
index 983302c..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_notifications_normal.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notify_clear_pressed.png b/packages/SystemUI/res/drawable-xhdpi/ic_notify_clear_pressed.png
deleted file mode 100644
index 992b50d..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_notify_clear_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notify_open_pressed.png b/packages/SystemUI/res/drawable-xhdpi/ic_notify_open_pressed.png
deleted file mode 100644
index 501c777..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_notify_open_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notify_quicksettings_pressed.png b/packages/SystemUI/res/drawable-xhdpi/ic_notify_quicksettings_pressed.png
deleted file mode 100644
index ddf2c7a..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_notify_quicksettings_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notify_rotation_off_normal.png b/packages/SystemUI/res/drawable-xhdpi/ic_notify_rotation_off_normal.png
deleted file mode 100644
index cebd6d8..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_notify_rotation_off_normal.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notify_rotation_off_pressed.png b/packages/SystemUI/res/drawable-xhdpi/ic_notify_rotation_off_pressed.png
deleted file mode 100644
index ef4d9a1..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_notify_rotation_off_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notify_rotation_on_normal.png b/packages/SystemUI/res/drawable-xhdpi/ic_notify_rotation_on_normal.png
deleted file mode 100644
index 01146aa..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_notify_rotation_on_normal.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notify_rotation_on_pressed.png b/packages/SystemUI/res/drawable-xhdpi/ic_notify_rotation_on_pressed.png
deleted file mode 100644
index e8f01c5..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_notify_rotation_on_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_notify_settings_pressed.png b/packages/SystemUI/res/drawable-xhdpi/ic_notify_settings_pressed.png
deleted file mode 100644
index ac7c1a7..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_notify_settings_pressed.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_auto_rotate.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_auto_rotate.png
index 91f9383..c553bc2 100644
--- a/packages/SystemUI/res/drawable-xhdpi/ic_qs_auto_rotate.png
+++ b/packages/SystemUI/res/drawable-xhdpi/ic_qs_auto_rotate.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_0.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_0.png
index 9b3ee3c..b6e7a3f 100644
--- a/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_0.png
+++ b/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_bolt.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_bolt.png
deleted file mode 100644
index 0c5594d..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_qs_battery_bolt.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_not_connected.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_not_connected.png
index 5bf36fd..ce965c2 100644
--- a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_not_connected.png
+++ b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_not_connected.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_ime_default.png
deleted file mode 100644
index 906d316..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_ime_default.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_lights_out_dot_large.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_lights_out_dot_large.png
index 155c788..ee5eed8 100644
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_lights_out_dot_large.png
+++ b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_lights_out_dot_large.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_lights_out_dot_small.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_lights_out_dot_small.png
index e84f3fb..b434fc4 100644
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_lights_out_dot_small.png
+++ b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_lights_out_dot_small.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/recents_blue_glow.9.png b/packages/SystemUI/res/drawable-xhdpi/recents_blue_glow.9.png
deleted file mode 100644
index e1e08c6..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/recents_blue_glow.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/recents_thumbnail_bg_dragging.9.png b/packages/SystemUI/res/drawable-xhdpi/recents_thumbnail_bg_dragging.9.png
index 1d097c5..79d1b3c 100644
--- a/packages/SystemUI/res/drawable-xhdpi/recents_thumbnail_bg_dragging.9.png
+++ b/packages/SystemUI/res/drawable-xhdpi/recents_thumbnail_bg_dragging.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/recents_thumbnail_bg_normal.9.png b/packages/SystemUI/res/drawable-xhdpi/recents_thumbnail_bg_normal.9.png
index 80fc849..c57ec67 100644
--- a/packages/SystemUI/res/drawable-xhdpi/recents_thumbnail_bg_normal.9.png
+++ b/packages/SystemUI/res/drawable-xhdpi/recents_thumbnail_bg_normal.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/recents_thumbnail_bg_press.9.png b/packages/SystemUI/res/drawable-xhdpi/recents_thumbnail_bg_press.9.png
index 5bae56d..f01a79e 100644
--- a/packages/SystemUI/res/drawable-xhdpi/recents_thumbnail_bg_press.9.png
+++ b/packages/SystemUI/res/drawable-xhdpi/recents_thumbnail_bg_press.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/screenshot_panel.9.png b/packages/SystemUI/res/drawable-xhdpi/screenshot_panel.9.png
index c096c7a..511537a 100644
--- a/packages/SystemUI/res/drawable-xhdpi/screenshot_panel.9.png
+++ b/packages/SystemUI/res/drawable-xhdpi/screenshot_panel.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_alarm.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_alarm.png
index c8882e0..8bca860 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_alarm.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_alarm.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_0.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_0.png
index f3ccfd4..11305ea 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_0.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_100.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_100.png
index d6d9f61..9cd3dbb 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_100.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_100.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_15.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_15.png
index d81a581..2c6a018 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_15.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_28.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_28.png
index 66bcba5..045a080 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_28.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_28.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_43.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_43.png
index f247294..91d9694 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_43.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_43.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_57.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_57.png
index f175737..c87bbf2 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_57.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_57.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_71.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_71.png
index b3b7f29..d629095 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_71.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_71.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_85.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_85.png
index 816f0ae..da7dc8f 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_85.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_85.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim0.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim0.png
index 1fbd6fc..3350a2d 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim0.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim100.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim100.png
index 6a1df52..8af8515 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim100.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim100.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim15.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim15.png
index 9a8e6b0..af3f5f5 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim15.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim28.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim28.png
index 428aa4f..919e71d 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim28.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim28.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim43.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim43.png
index f13d8b9..4d92503 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim43.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim43.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim57.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim57.png
index 8f2332f..b7aa3d1 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim57.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim57.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim71.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim71.png
index 33a2a24..0b25ab3 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim71.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim71.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim85.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim85.png
index ef398fa..b699296 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim85.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_battery_charge_anim85.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_bluetooth.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_bluetooth.png
index 61c5ee7..0896225 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_bluetooth.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_bluetooth.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_1x.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_1x.png
index 51a3c79..33c2b82 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_1x.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_1x.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_3g.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_3g.png
index 8e62d51..7a1d8d6 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_3g.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_3g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_4g.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_4g.png
index 4546ad1..554953a 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_4g.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_4g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_e.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_e.png
index 112293d..b9e3b88 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_e.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_e.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_g.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_g.png
index 79d9447..137f76e 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_g.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_h.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_h.png
index 4dafeba..e8b6d40 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_h.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_h.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_lte.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_lte.png
index 92e3873..227a105 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_lte.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_lte.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_roam.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_roam.png
index a4cb86b..bdaafc9 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_roam.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_data_connected_roam.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_device_access_location_found.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_device_access_location_found.png
index dbd370d..a7f0017 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_device_access_location_found.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_device_access_location_found.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_no_sim.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_no_sim.png
index 8bba3c8..eeac6ad 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_no_sim.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_no_sim.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_ringer_silent.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_ringer_silent.png
index 19fa2e8..662d062 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_ringer_silent.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_ringer_silent.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_ringer_vibrate.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_ringer_vibrate.png
index bc41395..18be9c0 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_ringer_vibrate.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_ringer_vibrate.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_0.png
index f5843ad..8b34373 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_0.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_0_fully.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_0_fully.png
index df5138e..8b34373 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_0_fully.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_0_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_1.png
index 41a46ed..610e78f 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_1.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_1_fully.png
index a76bca3..f682a0e 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_1_fully.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_2.png
index d4dca0b..5bb372e 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_2.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_2_fully.png
index a91f099..ef05975 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_2_fully.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_3.png
index 33e8072..d556733 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_3.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_3_fully.png
index e1c0f71..c5088b5 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_3_fully.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_4.png
index cad7427..e1bd8bd 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_4.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_4_fully.png
index c36c6d9..c82a435 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_4_fully.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_null.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_null.png
index 674be33..298b27d 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_null.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_sync.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_sync.png
index ab6f812..75b002d 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_sync.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_sync.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_sync_error.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_sync_error.png
index a7780cf..6276f47 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_sync_error.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_sync_error.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_0.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_0.png
index b609d3c..0ae59e3 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_0.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_1.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_1.png
index 6d5454d..172ab5b 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_1.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_1_fully.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_1_fully.png
index 6eb8410..0368f17 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_1_fully.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_2.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_2.png
index 7ab5f6a..669750f 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_2.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_2_fully.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_2_fully.png
index e865805..2813464 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_2_fully.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_3.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_3.png
index a77bceb..5e11523 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_3.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_3_fully.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_3_fully.png
index 5cf396b..811038c 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_3_fully.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_4.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_4.png
index 056bec6..b6b6555 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_4.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_4_fully.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_4_fully.png
index e8d66bc..b4821d7 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_4_fully.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_null.png b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_null.png
index ebc2d32..bdf7bca 100644
--- a/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_null.png
+++ b/packages/SystemUI/res/drawable-xhdpi/stat_sys_wifi_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/status_bar_bg_tile.png b/packages/SystemUI/res/drawable-xhdpi/status_bar_bg_tile.png
deleted file mode 100644
index d01b117..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/status_bar_bg_tile.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/status_bar_close_off.9.png b/packages/SystemUI/res/drawable-xhdpi/status_bar_close_off.9.png
index 98d0cfb..1fed081 100644
--- a/packages/SystemUI/res/drawable-xhdpi/status_bar_close_off.9.png
+++ b/packages/SystemUI/res/drawable-xhdpi/status_bar_close_off.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/status_bar_close_on.9.png b/packages/SystemUI/res/drawable-xhdpi/status_bar_close_on.9.png
index 17f4169..e931314 100644
--- a/packages/SystemUI/res/drawable-xhdpi/status_bar_close_on.9.png
+++ b/packages/SystemUI/res/drawable-xhdpi/status_bar_close_on.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/status_bar_hr.9.png b/packages/SystemUI/res/drawable-xhdpi/status_bar_hr.9.png
deleted file mode 100644
index 748b9f7..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/status_bar_hr.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/title_bar_shadow.9.png b/packages/SystemUI/res/drawable-xhdpi/title_bar_shadow.9.png
deleted file mode 100644
index 89f14db..0000000
--- a/packages/SystemUI/res/drawable-xhdpi/title_bar_shadow.9.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/heads_up_window_bg.9.png b/packages/SystemUI/res/drawable-xxhdpi/heads_up_window_bg.9.png
new file mode 100644
index 0000000..586a738
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/heads_up_window_bg.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_menu_share.png b/packages/SystemUI/res/drawable-xxhdpi/ic_menu_share.png
new file mode 100644
index 0000000..d450531
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_menu_share.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_auto_rotate.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_auto_rotate.png
index 85b8aef..b6cfaec 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_auto_rotate.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_auto_rotate.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_0.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_0.png
index 84ff4ff..ef177a6 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_0.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_15.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_15.png
new file mode 100644
index 0000000..0a46dde
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_bang_orange.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_bang_orange.png
new file mode 100644
index 0000000..2b333d7
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_bang_orange.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_bang_red.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_bang_red.png
new file mode 100644
index 0000000..4c71154
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_bang_red.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_bang_white.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_bang_white.png
new file mode 100644
index 0000000..976a36b
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_bang_white.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_charge_0.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_charge_0.png
new file mode 100644
index 0000000..82d4806
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_charge_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_charge_15.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_charge_15.png
new file mode 100644
index 0000000..96d39db
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_battery_charge_15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_bluetooth_not_connected.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_bluetooth_not_connected.png
index 434bcc6..c5b7333 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_bluetooth_not_connected.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_bluetooth_not_connected.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_highlight.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_highlight.png
new file mode 100644
index 0000000..0df6203
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_highlight.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_highlight_land.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_highlight_land.png
new file mode 100644
index 0000000..b400b14
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_highlight_land.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_ime_default.png
deleted file mode 100644
index 9643578..0000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_ime_default.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/notification_panel_bg.9.png b/packages/SystemUI/res/drawable-xxhdpi/notification_panel_bg.9.png
new file mode 100644
index 0000000..adcdcb7
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/notification_panel_bg.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/recents_thumbnail_bg_dragging.9.png b/packages/SystemUI/res/drawable-xxhdpi/recents_thumbnail_bg_dragging.9.png
new file mode 100644
index 0000000..c424ffe
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/recents_thumbnail_bg_dragging.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/recents_thumbnail_bg_normal.9.png b/packages/SystemUI/res/drawable-xxhdpi/recents_thumbnail_bg_normal.9.png
new file mode 100644
index 0000000..a446448
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/recents_thumbnail_bg_normal.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/recents_thumbnail_bg_press.9.png b/packages/SystemUI/res/drawable-xxhdpi/recents_thumbnail_bg_press.9.png
new file mode 100644
index 0000000..b7bbd82
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/recents_thumbnail_bg_press.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/screenshot_panel.9.png b/packages/SystemUI/res/drawable-xxhdpi/screenshot_panel.9.png
new file mode 100644
index 0000000..45259d7
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/screenshot_panel.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_alarm.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_alarm.png
index ed4b8c4..d42d9d6 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_alarm.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_alarm.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_0.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_0.png
index 0c96e54..0795f3a 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_0.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_100.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_100.png
index 4a5ede4..5b002df 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_100.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_100.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_15.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_15.png
index eb3d607..c03248a 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_15.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_28.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_28.png
index 6f61b8e..e489d2c 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_28.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_28.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_43.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_43.png
index 4eaf0e6..68a1be8 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_43.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_43.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_57.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_57.png
index e1297ed..e5f639d 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_57.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_57.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_71.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_71.png
index 8e58b76..ddfa424 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_71.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_71.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_85.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_85.png
index 5e55b28..3b3025b 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_85.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_85.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim0.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim0.png
index 0fce153..7ece3af 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim0.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim100.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim100.png
index 4cb166a..2f4cf03 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim100.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim100.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim15.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim15.png
index 0239c15..8179eba 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim15.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim28.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim28.png
index 96d2bd8..5c925c1 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim28.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim28.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim43.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim43.png
index 2d3ca6c..f527679 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim43.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim43.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim57.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim57.png
index d825f86..fab08f4 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim57.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim57.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim71.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim71.png
index 6f22b47..1f8dc5e 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim71.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim71.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim85.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim85.png
index 0077f86..7f1f977 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim85.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_battery_charge_anim85.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_bluetooth.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_bluetooth.png
index 235f756..b9825f9 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_bluetooth.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_bluetooth.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_1x.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_1x.png
index 2776d03..9baa623 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_1x.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_1x.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_3g.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_3g.png
index 59309b0..af3a0d9 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_3g.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_3g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_4g.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_4g.png
index f95e3f1..717895b 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_4g.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_4g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_e.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_e.png
index ca93fac..989b236 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_e.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_e.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_g.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_g.png
index d2efd69..49cce0d 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_g.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_h.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_h.png
index 9f4ee4c..caa5552 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_h.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_h.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_lte.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_lte.png
index cfdbe63..a0beb07 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_lte.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_lte.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_roam.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_roam.png
index b04e4b0..9cc3184 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_roam.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_data_connected_roam.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_device_access_location_found.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_device_access_location_found.png
index 8e00f6d..ad34d49 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_device_access_location_found.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_device_access_location_found.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_no_sim.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_no_sim.png
index a5031a3..32415c2 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_no_sim.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_no_sim.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_ringer_silent.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_ringer_silent.png
index 4e511c6..aabf0aa 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_ringer_silent.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_ringer_silent.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_ringer_vibrate.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_ringer_vibrate.png
index efd0ca6..654c2a5 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_ringer_vibrate.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_ringer_vibrate.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_0.png
index 18f63e5..361ff48 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_0.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_0_fully.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_0_fully.png
index 8106087..937839b 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_0_fully.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_0_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_1.png
index d863597..d185a4d 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_1.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_1_fully.png
index 01fce1a..2bd6eb1 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_1_fully.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_2.png
index f9ee187..9594607 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_2.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_2_fully.png
index e72fda6..aad369e 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_2_fully.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_3.png
index a1540d7..6f9f50c 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_3.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_3_fully.png
index eebc585..c76e188 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_3_fully.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_4.png
index bf22fbb..75a182f 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_4.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_4_fully.png
index 754e3b9..1889813 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_4_fully.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_null.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_null.png
index 78e94c6..b388b8f 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_null.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_sync.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_sync.png
index e36bf10..99b2fff 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_sync.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_sync.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_sync_error.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_sync_error.png
index 274b02f..2f6a4c0 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_sync_error.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_sync_error.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_0.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_0.png
index c694e8b..93fd9b6 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_0.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_1.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_1.png
index 9051ce9..a8681ec 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_1.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_1_fully.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_1_fully.png
index f696027..47a04cb 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_1_fully.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_2.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_2.png
index e3e0eaf..343eef9 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_2.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_2_fully.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_2_fully.png
index 5df60a1..033bced 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_2_fully.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_3.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_3.png
index e969dda..168f8ff 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_3.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_3_fully.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_3_fully.png
index 635989c..c546e08 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_3_fully.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_4.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_4.png
index 0c28616..a7b32c9 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_4.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_4_fully.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_4_fully.png
index 1c63257..1126d9b 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_4_fully.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_null.png b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_null.png
index 19ee69e..5f8e67b 100644
--- a/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_null.png
+++ b/packages/SystemUI/res/drawable-xxhdpi/stat_sys_wifi_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/status_bar_close_off.9.png b/packages/SystemUI/res/drawable-xxhdpi/status_bar_close_off.9.png
new file mode 100644
index 0000000..d50ff85
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/status_bar_close_off.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/status_bar_close_on.9.png b/packages/SystemUI/res/drawable-xxhdpi/status_bar_close_on.9.png
new file mode 100644
index 0000000..5d27ccd
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/status_bar_close_on.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/title_bar_shadow.9.png b/packages/SystemUI/res/drawable-xxhdpi/title_bar_shadow.9.png
new file mode 100644
index 0000000..e86f891
--- /dev/null
+++ b/packages/SystemUI/res/drawable-xxhdpi/title_bar_shadow.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable/btn_default_small.xml b/packages/SystemUI/res/drawable/btn_default_small.xml
deleted file mode 100644
index 5485ea0..0000000
--- a/packages/SystemUI/res/drawable/btn_default_small.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_window_focused="false" android:state_enabled="true"
-        android:drawable="@drawable/btn_default_small_normal" />
-    <item android:state_window_focused="false" android:state_enabled="false"
-        android:drawable="@drawable/btn_default_small_normal_disable" />
-    <item android:state_pressed="true" 
-        android:drawable="@drawable/btn_default_small_pressed" />
-    <item android:state_focused="true" android:state_enabled="true"
-        android:drawable="@drawable/btn_default_small_selected" />
-    <item android:state_enabled="true"
-        android:drawable="@drawable/btn_default_small_normal" />
-    <item android:state_focused="true"
-        android:drawable="@drawable/btn_default_small_normal_disable_focused" />
-    <item
-         android:drawable="@drawable/btn_default_small_normal_disable" />
-</selector>
-
diff --git a/packages/SystemUI/res/drawable/cling_button_bg.xml b/packages/SystemUI/res/drawable/cling_button_bg.xml
deleted file mode 100644
index d175f53..0000000
--- a/packages/SystemUI/res/drawable/cling_button_bg.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_pressed="true" android:drawable="@drawable/btn_cling_pressed" />
-    <item android:drawable="@drawable/btn_cling_normal" />
-</selector>
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/ic_notify_rotation.xml b/packages/SystemUI/res/drawable/ic_notify_rotation.xml
deleted file mode 100644
index 11bc22c..0000000
--- a/packages/SystemUI/res/drawable/ic_notify_rotation.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:constantSize="true">
-    <item android:state_checked="true" android:state_pressed="true">
-        <bitmap android:src="@drawable/ic_notify_rotation_on_pressed"
-                android:gravity="center" />
-    </item>
-    <item android:state_checked="true">
-        <bitmap android:src="@drawable/ic_notify_rotation_on_normal"
-                android:gravity="center" />
-    </item>
-    <item android:state_pressed="true">
-        <bitmap android:src="@drawable/ic_notify_rotation_off_pressed"
-                android:gravity="center" />
-    </item>
-    <item>
-        <bitmap android:src="@drawable/ic_notify_rotation_off_normal"
-                android:gravity="center" />
-    </item>
-</selector>
-
diff --git a/packages/SystemUI/res/drawable/ic_sysbar_ime.xml b/packages/SystemUI/res/drawable/ic_sysbar_ime.xml
deleted file mode 100644
index 1accf00..0000000
--- a/packages/SystemUI/res/drawable/ic_sysbar_ime.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_pressed="true" android:drawable="@drawable/ic_sysbar_ime_pressed" />
-    <item android:drawable="@drawable/ic_sysbar_ime_default" />
-</selector>
-
diff --git a/packages/SystemUI/res/drawable/notify_panel_clock_bg.xml b/packages/SystemUI/res/drawable/notify_panel_clock_bg.xml
deleted file mode 100644
index c83d878..0000000
--- a/packages/SystemUI/res/drawable/notify_panel_clock_bg.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_pressed="true"
-        android:drawable="@drawable/notify_panel_clock_bg_pressed" />
-    <item android:drawable="@drawable/notify_panel_clock_bg_normal" />
-</selector>
-
diff --git a/packages/SystemUI/res/drawable/status_bar_bg.xml b/packages/SystemUI/res/drawable/status_bar_bg.xml
deleted file mode 100644
index 403493b..0000000
--- a/packages/SystemUI/res/drawable/status_bar_bg.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<bitmap
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:tileMode="repeat"
-    android:src="@drawable/status_bar_bg_tile"
-    />
diff --git a/packages/SystemUI/res/layout-land/status_bar_help.xml b/packages/SystemUI/res/layout-land/status_bar_help.xml
deleted file mode 100644
index a885b86..0000000
--- a/packages/SystemUI/res/layout-land/status_bar_help.xml
+++ /dev/null
@@ -1,71 +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.
-*/
--->
-
-<!-- This is the combined status bar / notification panel window. -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:id="@+id/status_bar_cling"
-    android:paddingStart="40dp"
-    android:paddingEnd="40dp"
-    android:background="#DD000000"
-    android:focusable="true"
-    android:orientation="horizontal" 
-    android:gravity="top|start"
-    >
-
-    <ImageView
-        android:layout_width="wrap_content"
-        android:layout_weight="0"
-        android:layout_height="wrap_content"
-        android:layout_marginEnd="50dp"
-        android:gravity="center"
-        android:src="@drawable/arrow_dashed"
-        tools:ignore="ContentDescription" />
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_weight="1"
-        android:orientation="vertical"
-        android:layout_marginTop="40dp"
-        >
-        <TextView
-            style="@style/ClingTitleText"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:text="@string/status_bar_help_title" />
-
-        <TextView
-            style="@style/ClingText"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginBottom="30dp"
-            android:text="@string/status_bar_help_text" />
-
-        <Button
-            android:id="@+id/ok"
-            style="@style/ClingButton"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:paddingStart="50dp"
-            android:paddingEnd="50dp"
-            android:text="@android:string/ok" />
-    </LinearLayout>
-</LinearLayout>
diff --git a/packages/SystemUI/res/layout/status_bar_help.xml b/packages/SystemUI/res/layout/status_bar_help.xml
deleted file mode 100644
index f638767..0000000
--- a/packages/SystemUI/res/layout/status_bar_help.xml
+++ /dev/null
@@ -1,63 +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.
-*/
--->
-
-<!-- This is the combined status bar / notification panel window. -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:id="@+id/status_bar_cling"
-    android:paddingStart="40dp"
-    android:paddingEnd="40dp"
-    android:background="#DD000000"
-    android:focusable="true"
-    android:orientation="vertical" 
-    android:gravity="top|start"
-    >
-
-    <ImageView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="50dp"
-        android:gravity="center"
-        android:src="@drawable/arrow_dashed"
-        tools:ignore="ContentDescription" />
-
-    <TextView
-        style="@style/ClingTitleText"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:text="@string/status_bar_help_title" />
-
-    <TextView
-        style="@style/ClingText"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginBottom="30dp"
-        android:text="@string/status_bar_help_text" />
-
-    <Button
-        android:id="@+id/ok"
-        style="@style/ClingButton"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:paddingStart="50dp"
-        android:paddingEnd="50dp"
-        android:text="@android:string/ok" />
-
-</LinearLayout>
\ No newline at end of file
diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml
index c0473c2..6835151 100644
--- a/packages/SystemUI/res/values-af/strings.xml
+++ b/packages/SystemUI/res/values-af/strings.xml
@@ -202,7 +202,7 @@
     <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Netwerk kan dalk gemonitor word"</string>
     <string name="done_button" msgid="1759387181766603361">"Klaar"</string>
     <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Netwerkmonitering"</string>
-    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Hierdie toestel word bestuur deur: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nJou administrator is bevoeg om jou netwerkaktiwiteit te monitor, insluitend e-pos, programme en veilige webwerwe.\n\nKontak jou administrator vir meer inligting."</string>
-    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"\'n Derdeparty is bevoeg om jou netwerk\n-aktiwiteit te monitor, insluitend e-pos, programme en veilige webwerwe.\n\n\'n Vertroude eiebewys wat op jou toestel geïnstalleer is, maak dit moontlik."</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Hierdie toestel word bestuur deur: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nJou administrateur kan jou netwerkaktiwiteit monitor, insluitend e-pos, programme en veilige webwerwe.\n\nKontak jou administrateur vir meer inligting."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"\'n Derdeparty kan jou netwerk\n-aktiwiteit monitor, insluitend e-pos, programme en veilige webwerwe.\n\n\'n Vertroude eiebewys wat op jou toestel geïnstalleer is, maak dit moontlik."</string>
     <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Gaan vertroude eiebewyse na"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml
index c821bd4..47d36b0 100644
--- a/packages/SystemUI/res/values-am/strings.xml
+++ b/packages/SystemUI/res/values-am/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"ራስ-ሰር"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"ማሳወቂያዎች እዚህ ላይ ይታያሉ"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"ወደ ታች በማንሸራተት በማንኛውም ጊዜ ይድረሱባቸው።\nSwipe የስርዓት መቆጣጠሪያዎችን ለማምጣት እንደገና ወደ ታች ያንሸራትቱ።"</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"አውታረ መረብ በክትትል ውስጥ ሊሆን ይችላል"</string>
+    <string name="done_button" msgid="1759387181766603361">"ተከናውኗል"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"የአውታረ መረብ ክትትል"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"መሳሪያው የሚተዳደረው፦ በ<xliff:g id="MANAGING_DOMAIN">%s</xliff:g>። \n\nአስተዳዳሪዎ ኢሜይሎችዎን፣ መተግበሪያዎችዎን እና ደህንነታቸው አስተማማኝ የሆኑ ድር ጣቢያዎችን ጨምሮ የአውታረ መረብ እንቅስቃሴዎን መከታተል ይችላል።\n\nለተጨማሪ መረጃ አስተዳዳሪዎን ያግኙ።"</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"ሶስተኛ ወገን ኢሜይሎችዎን፣ መተግበሪያዎችዎን እና ደህንነታቸው አስተማማኝ የሆኑ\nድር ጣቢያዎችን ጨምሮ አውታረ መረብ እንቅስቃሴዎን መከታተል ይችላል።\n\nበመሳሪያዎ ላይ የተጫነ የታመነ ምስክርነት ይህን የሚቻል አድርጎታል።"</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"የታመኑ ምስክርነቶችን ይፈትሹ"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml
index 9b2e974..fcc4696 100644
--- a/packages/SystemUI/res/values-ar/strings.xml
+++ b/packages/SystemUI/res/values-ar/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"تلقائي"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"تظهر الإشعارات هنا"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"يمكنك الدخول إليها في أي وقت بالتمرير السريع إلى أسفل.\nيمكنك التمرير السريع إلى أسفل مرة أخرى للوصول إلى عناصر تحكم النظام."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"قد تكون الشبكة مراقبة"</string>
+    <string name="done_button" msgid="1759387181766603361">"تم"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"مراقبة الشبكات"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"هذا الجهاز يديره: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nيستطيع مشرفك مراقبة أنشطة الشبكة بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب الآمنة.\n\nللمزيد من المعلومات، اتصل بالمشرف."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"بإمكان الطرف الثالث مراقبة أنشطة\nالشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب الآمنة.\n\nوتجعل بيانات الاعتماد الموثوق فيها والمثبتة على جهازك حدوث هذا ممكنًا."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"التحقق من بيانات الاعتماد الموثوق فيها"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-az-rAZ/strings.xml b/packages/SystemUI/res/values-az-rAZ/strings.xml
new file mode 100644
index 0000000..cb48aa0
--- /dev/null
+++ b/packages/SystemUI/res/values-az-rAZ/strings.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0 
+ *
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7164937344850004466">"Sistemin İstifadə İnterfeysi"</string>
+    <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Təmizlə"</string>
+    <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Siyahıdan sil"</string>
+    <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Tətbiq infosu"</string>
+    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Yeni tətbiq yoxdur"</string>
+    <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Son tətbiqləri kənarlaşdır"</string>
+  <plurals name="status_bar_accessibility_recent_apps">
+    <item quantity="one" msgid="5854176083865845541">"1 son tətbiq"</item>
+    <item quantity="other" msgid="1040784359794890744">"%d son tətbiq"</item>
+  </plurals>
+    <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Bildiriş yoxdu"</string>
+    <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Davam edir"</string>
+    <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Bildirişlər"</string>
+    <string name="battery_low_title" msgid="2783104807551211639">"Adapteri qoşun"</string>
+    <string name="battery_low_subtitle" msgid="1752040062087829196">"Batareya azalır."</string>
+    <string name="battery_low_percent_format" msgid="1077244949318261761">"<xliff:g id="NUMBER">%d%%</xliff:g> qalıb"</string>
+    <string name="invalid_charger" msgid="4549105996740522523">"USB ilə elektrik doldurma dəstəklənmir.\nYalnız adapter istifadə edin."</string>
+    <string name="battery_low_why" msgid="7279169609518386372">"Batareya istifadəsi"</string>
+    <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ayarlar"</string>
+    <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
+    <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Təyyarə rejimi"</string>
+    <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Ekranın avto-dönüşü"</string>
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"SUSDUR"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AVTO"</string>
+    <string name="status_bar_settings_notifications" msgid="397146176280905137">"Bildirişlər"</string>
+    <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth tezerinq"</string>
+    <string name="status_bar_input_method_settings_configure_input_methods" msgid="3504292471512317827">"Daxiletmə metodlarını ayarlayın"</string>
+    <string name="status_bar_use_physical_keyboard" msgid="7551903084416057810">"Fiziki klaviatura"</string>
+    <string name="usb_device_permission_prompt" msgid="834698001271562057">"<xliff:g id="APPLICATION">%1$s</xliff:g> tətbiqinə USB cihazına daxil olmağa icazə verilsin?"</string>
+    <string name="usb_accessory_permission_prompt" msgid="5171775411178865750">"<xliff:g id="APPLICATION">%1$s</xliff:g> tətbiqinə USB aksesuarına qoşulmağa icazə verirsiniz?"</string>
+    <string name="usb_device_confirm_prompt" msgid="5161205258635253206">"USB cihaz qoşulu olan zaman <xliff:g id="ACTIVITY">%1$s</xliff:g> açılsın mı?"</string>
+    <string name="usb_accessory_confirm_prompt" msgid="3808984931830229888">"USB aksesuar qoşulu olan zaman <xliff:g id="ACTIVITY">%1$s</xliff:g> açılsın mı?"</string>
+    <string name="usb_accessory_uri_prompt" msgid="513450621413733343">"Heç bir quraşdırılmış tətbiq bu USB aksesuar ilə işləmir. Bu aksesuar haqqında daha ətraflı məlumatı <xliff:g id="URL">%1$s</xliff:g> adresindən öyrənin"</string>
+    <string name="title_usb_accessory" msgid="4966265263465181372">"USB aksesuar"</string>
+    <string name="label_view" msgid="6304565553218192990">"Göstər"</string>
+    <string name="always_use_device" msgid="1450287437017315906">"Bu USB cihaz üçün defolt olaraq istifadə edin."</string>
+    <string name="always_use_accessory" msgid="1210954576979621596">"Bu USB aksesuar üçün defolt istifadə edin"</string>
+    <string name="usb_debugging_title" msgid="4513918393387141949">"USB sazlamaya icazə verilsin?"</string>
+    <string name="usb_debugging_message" msgid="2220143855912376496">"Kompüterin RSA barmaq izi: \n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string>
+    <string name="usb_debugging_always" msgid="303335496705863070">"Bu kompüterdən həmişə icazə verilsin"</string>
+    <string name="compat_mode_on" msgid="6623839244840638213">"Ekranı doldurmaq üçün yaxınlaşdır"</string>
+    <string name="compat_mode_off" msgid="4434467572461327898">"Ekranı doldurmaq üçün uzat"</string>
+    <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Skrinşot yadda saxlanılır..."</string>
+    <string name="screenshot_saving_title" msgid="8242282144535555697">"Skrinşot yadda saxlanır..."</string>
+    <string name="screenshot_saving_text" msgid="2419718443411738818">"Skrinşot yadda saxlanır."</string>
+    <string name="screenshot_saved_title" msgid="6461865960961414961">"Skrinşot çəkildi."</string>
+    <string name="screenshot_saved_text" msgid="1152839647677558815">"Skrinşotunuza baxmaq üçün toxunun"</string>
+    <string name="screenshot_failed_title" msgid="705781116746922771">"Skrinşot götürülə bilinmədi."</string>
+    <string name="screenshot_failed_text" msgid="8134011269572415402">"Skrinşotu yadda saxlamaq alınmadı, yəqin yaddaş istifadə olunur."</string>
+    <string name="usb_preference_title" msgid="6551050377388882787">"USB fayl transferi seçimləri"</string>
+    <string name="use_mtp_button_title" msgid="4333504413563023626">"Media pleyer (MTP) kimi montaj edin"</string>
+    <string name="use_ptp_button_title" msgid="7517127540301625751">"Kamera kimi birləşdir (PTP)"</string>
+    <string name="installer_cd_button_title" msgid="2312667578562201583">"Mac üçün Android File Transfer tətbiqini quraşdırın"</string>
+    <string name="accessibility_back" msgid="567011538994429120">"Geri"</string>
+    <string name="accessibility_home" msgid="8217216074895377641">"Ana səhifə"</string>
+    <string name="accessibility_menu" msgid="316839303324695949">"Menyu"</string>
+    <string name="accessibility_recent" msgid="8571350598987952883">"Son tətbiqlər"</string>
+    <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Daxiletmə metodu düyməsinə keç"</string>
+    <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Uyğunluq zoom düyməsi."</string>
+    <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Daha böyük ekranda uzaqlaşdır."</string>
+    <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth qoşulub."</string>
+    <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth əlaqəsi kəsildi."</string>
+    <string name="accessibility_no_battery" msgid="358343022352820946">"Batareya yoxdur."</string>
+    <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Batareya bir xətdir."</string>
+    <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Batareya iki xətdir."</string>
+    <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Batareya üç xətdir."</string>
+    <string name="accessibility_battery_full" msgid="8909122401720158582">"Batareya doludur"</string>
+    <string name="accessibility_no_phone" msgid="4894708937052611281">"Telefon yoxdur."</string>
+    <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Şəbəkə bir xətdir."</string>
+    <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Şəbəkə iki xətdir."</string>
+    <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Şəbəkə üç xətdir."</string>
+    <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Tam şəbəkə."</string>
+    <string name="accessibility_no_data" msgid="4791966295096867555">"Məlumat yoxdur."</string>
+    <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Data bir xətdir."</string>
+    <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data iki xətdir."</string>
+    <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data üç xətdir."</string>
+    <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Data siqnalı tamdır."</string>
+    <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi sönülüdür."</string>
+    <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi bağlantı kəsildi."</string>
+    <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wifi bir xətdir."</string>
+    <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wifi iki xətdir."</string>
+    <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wifi üç xətdir."</string>
+    <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wifi siqnalı tamdır."</string>
+    <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX yoxdur."</string>
+    <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX bir xətt."</string>
+    <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX iki xətdir."</string>
+    <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX üç xətdir."</string>
+    <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX siqnalı tamdır."</string>
+    <string name="accessibility_no_signal" msgid="7064645320782585167">"Siqnal yoxdur."</string>
+    <string name="accessibility_not_connected" msgid="6395326276213402883">"Qoşulu deyil."</string>
+    <string name="accessibility_zero_bars" msgid="3806060224467027887">"Sıfır xətt."</string>
+    <string name="accessibility_one_bar" msgid="1685730113192081895">"Bir xətt."</string>
+    <string name="accessibility_two_bars" msgid="6437363648385206679">"İki xətt."</string>
+    <string name="accessibility_three_bars" msgid="2648241415119396648">"Üç xətdir."</string>
+    <string name="accessibility_signal_full" msgid="9122922886519676839">"Siqnal tamdır."</string>
+    <string name="accessibility_desc_on" msgid="2385254693624345265">"Aktiv."</string>
+    <string name="accessibility_desc_off" msgid="6475508157786853157">"Deaktiv"</string>
+    <string name="accessibility_desc_connected" msgid="8366256693719499665">"Qoşuludur."</string>
+    <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+    <string name="accessibility_data_connection_1x" msgid="994133468120244018">"1 X"</string>
+    <string name="accessibility_data_connection_hspa" msgid="2032328855462645198">"HSPA"</string>
+    <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+    <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+    <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+    <string name="accessibility_data_connection_lte" msgid="5413468808637540658">"LTE"</string>
+    <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+    <string name="accessibility_data_connection_roaming" msgid="5977362333466556094">"Rouminq"</string>
+    <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+    <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"Wi-Fi"</string>
+    <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM yoxdur"</string>
+    <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth tezering."</string>
+    <string name="accessibility_airplane_mode" msgid="834748999790763092">"Uçuş rejimi"</string>
+    <string name="accessibility_battery_level" msgid="7451474187113371965">"Batareya <xliff:g id="NUMBER">%d</xliff:g> faizdir."</string>
+    <string name="accessibility_settings_button" msgid="799583911231893380">"Sistem parametrləri"</string>
+    <string name="accessibility_notifications_button" msgid="4498000369779421892">"Bildirişlər."</string>
+    <string name="accessibility_remove_notification" msgid="3603099514902182350">"Bildirişi təmizlə."</string>
+    <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS aktivdir."</string>
+    <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"GPS əldə edilir."</string>
+    <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTypewriter aktivləşdirilib."</string>
+    <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Zəng vibrasiyası"</string>
+    <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Zəngvuran səssiz."</string>
+    <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> çıxarıldı."</string>
+    <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Bildiriş uzaqlaşdırıldı."</string>
+    <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Bildiriş kölgəsi."</string>
+    <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Tez ayarlar."</string>
+    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Axırıncı tətbiqlər."</string>
+    <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"İstifadəçi <xliff:g id="USER">%s</xliff:g>."</string>
+    <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
+    <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobil <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
+    <string name="accessibility_quick_settings_battery" msgid="1480931583381408972">"Batareya <xliff:g id="STATE">%s</xliff:g>."</string>
+    <string name="accessibility_quick_settings_airplane" msgid="4196876722090224753">"Təyyarə Rejimi <xliff:g id="STATE">%s</xliff:g>."</string>
+    <string name="accessibility_quick_settings_bluetooth" msgid="5749054971341882340">"Bluetooth <xliff:g id="STATE">%s</xliff:g>."</string>
+    <string name="accessibility_quick_settings_alarm" msgid="3959908972897295660">"Alarm <xliff:g id="TIME">%s</xliff:g> üçün qurulub."</string>
+    <string name="data_usage_disabled_dialog_3g_title" msgid="5257833881698644687">"2G-3G data qeyri-aktivdir"</string>
+    <string name="data_usage_disabled_dialog_4g_title" msgid="4789143363492682629">"4G data deaktiv edildi"</string>
+    <string name="data_usage_disabled_dialog_mobile_title" msgid="1046047248844821202">"Mobil data qeyri-aktivdir"</string>
+    <string name="data_usage_disabled_dialog_title" msgid="2086815304858964954">"Data qeyri-aktivdir"</string>
+    <string name="data_usage_disabled_dialog" msgid="3853117269051806280">"Göstərilmiş data istifadə limitinə çatdınız.\n\nƏgər datanı yenidən aktivləşdirsəniz, operator tərəfindən əlavə tariflər tətbiq oluna bilər."</string>
+    <string name="data_usage_disabled_dialog_enable" msgid="7729772039208664606">"Datanı yenidən aktiv et"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="1940231521274147771">"İnternet bağlantısı yoxdur"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="6557486452774597820">"Wi-Fi qoşulub"</string>
+    <string name="gps_notification_searching_text" msgid="8574247005642736060">"GPS Axtarışı"</string>
+    <string name="gps_notification_found_text" msgid="4619274244146446464">"Yer GPS tərəfindən müəyyən edildi"</string>
+    <string name="accessibility_location_active" msgid="2427290146138169014">"Məkan sorğuları arxivi"</string>
+    <string name="accessibility_clear_all" msgid="5235938559247164925">"Bütün bildirişləri sil."</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Tətbiq infosu"</string>
+    <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ekran avtomatik döndəriləcək."</string>
+    <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Ekran landşaft orientasiyasında kilidlənib."</string>
+    <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Ekran portret orientasiyasında kilidlənib."</string>
+    <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string>
+    <string name="start_dreams" msgid="7219575858348719790">"Xəyal"</string>
+    <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string>
+    <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Uçuş rejimi"</string>
+    <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Dolur, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
+    <string name="quick_settings_battery_charged_label" msgid="8865413079414246081">"Dolub"</string>
+    <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string>
+    <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Cihaz)"</string>
+    <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth bağlıdır"</string>
+    <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Parlaqlıq"</string>
+    <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Avtofırlanma"</string>
+    <string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Fırlatma kilidlidir"</string>
+    <string name="quick_settings_ime_label" msgid="7073463064369468429">"Daxiletmə metodu"</string>
+    <string name="quick_settings_location_label" msgid="5011327048748762257">"Yer"</string>
+    <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Yer Deaktiv"</string>
+    <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Media cihazı"</string>
+    <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string>
+    <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Yalnız fövqəladə zənglər"</string>
+    <string name="quick_settings_settings_label" msgid="5326556592578065401">"Nizamlar"</string>
+    <string name="quick_settings_time_label" msgid="4635969182239736408">"Vaxt"</string>
+    <string name="quick_settings_user_label" msgid="5238995632130897840">"Mən"</string>
+    <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string>
+    <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Bağlantı yoxdur"</string>
+    <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Şəbəkə yoxdur"</string>
+    <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi sönülüdür"</string>
+    <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"Wi-Fi Ekran"</string>
+    <string name="quick_settings_wifi_display_no_connection_label" msgid="2355298740765736918">"Simsiz Ekran"</string>
+    <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Parlaqlıq"</string>
+    <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AVTO"</string>
+    <string name="status_bar_help_title" msgid="1199237744086469217">"Bildirişlər burada görünür"</string>
+    <string name="status_bar_help_text" msgid="7874607155052076323">"Aşağı sürüşdürməklə istənilən vaxt onları əldə edin.\nSistemi nəzarəti üçün yenə də aşağı sürüşdürün."</string>
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Şəbəkə monitor edilə bilər"</string>
+    <string name="done_button" msgid="1759387181766603361">"Hazırdır"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Şəbəkə Monitorinqi"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Bu cihaz <xliff:g id="MANAGING_DOMAIN">%s</xliff:g> tərəfindən idarə edilir . \n \n Sizin administrator şəbəkə fəaliyyətinizin, həmçinin e-poçt, tətbiqlər və təhlükəsiz veb saytlarınızın monitorinqini etməyə qadirdir. \n \n Ətraflı məlumat üçün administrator ilə əlaqə saxlayın."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Üçüncü tərəf \n şəbəkə fəaliyyətinizin, həmçinin e-poçt, tətbiqlər və təhlükəsiz veb saytlarınızın monitorinqini etməyə qadirdir. . \n \nCihanzınıza yüklənmiş etibarlı etimad bunu mümkün edir."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Etibarlı etimadları yoxlayın"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml
index abba026..cb48aa0 100644
--- a/packages/SystemUI/res/values-az/strings.xml
+++ b/packages/SystemUI/res/values-az/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AVTO"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Bildirişlər burada görünür"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Aşağı sürüşdürməklə istənilən vaxt onları əldə edin.\nSistemi nəzarəti üçün yenə də aşağı sürüşdürün."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Şəbəkə monitor edilə bilər"</string>
+    <string name="done_button" msgid="1759387181766603361">"Hazırdır"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Şəbəkə Monitorinqi"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Bu cihaz <xliff:g id="MANAGING_DOMAIN">%s</xliff:g> tərəfindən idarə edilir . \n \n Sizin administrator şəbəkə fəaliyyətinizin, həmçinin e-poçt, tətbiqlər və təhlükəsiz veb saytlarınızın monitorinqini etməyə qadirdir. \n \n Ətraflı məlumat üçün administrator ilə əlaqə saxlayın."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Üçüncü tərəf \n şəbəkə fəaliyyətinizin, həmçinin e-poçt, tətbiqlər və təhlükəsiz veb saytlarınızın monitorinqini etməyə qadirdir. . \n \nCihanzınıza yüklənmiş etibarlı etimad bunu mümkün edir."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Etibarlı etimadları yoxlayın"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml
index 61ecf89..dbb12a5 100644
--- a/packages/SystemUI/res/values-bg/strings.xml
+++ b/packages/SystemUI/res/values-bg/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АВТ."</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Известията се показват тук"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Осъществявайте достъп до тях по всяко време, като прекарате пръст надолу.\nНаправете го отново за системните контроли."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Мрежата може да се наблюдава"</string>
+    <string name="done_button" msgid="1759387181766603361">"Готово"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Наблюдение на мрежата"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Това устройство се управлява от: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nАдминистраторът ви може да наблюдава активността ви в мрежата, включително имейлите, приложенията и сигурните уебсайтове.\n\nЗа повече информация се свържете с него."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Трета страна може да наблюдава активността ви в\nмрежата, включително имейлите, приложенията и сигурните уебсайтове.\n\nТова е възможно благодарение на инсталирани на устройството ви надеждни идентификационни данни."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Проверка на надеждните идентификационни данни"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml
index cb5001e..d9a5731 100644
--- a/packages/SystemUI/res/values-ca/strings.xml
+++ b/packages/SystemUI/res/values-ca/strings.xml
@@ -201,16 +201,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMÀTICA"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Les notificacions apareixen aquí"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Accedeix-hi en qualsevol moment: només has de fer lliscar el dit cap avall.\nTorna a fer lliscar el dit cap avall per fer que es mostrin els controls del sistema."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Pot ser que la xarxa se supervisi."</string>
+    <string name="done_button" msgid="1759387181766603361">"Fet"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Supervisió de xarxes"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"<xliff:g id="MANAGING_DOMAIN">%s</xliff:g> administra aquest dispositiu.\n\nEl teu administrador té capacitat per supervisar la teva activitat de xarxa, inclosos els correus electrònics, les aplicacions i els llocs web segurs.\n\nPer obtenir més informació, contacta amb l\'administrador."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Un tercer té la capacitat per supervisar la teva activitat de\nxarxa, inclosos els correus electrònics, les aplicacions i els llocs web segurs.\n\nHi ha una credencial de confiança instal·lada que fa que això sigui possible."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Comprova les credencials de confiança"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml
index ef7ba44..c8793c6 100644
--- a/packages/SystemUI/res/values-cs/strings.xml
+++ b/packages/SystemUI/res/values-cs/strings.xml
@@ -201,16 +201,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATICKY"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Zde se zobrazují oznámení"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Můžete je kdykoli zobrazit tím, že přejedete prstem dolů.\nPřejedete-li prstem dolů ještě jednou, zobrazí se ovládací prvky systému."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Síť může být monitorována"</string>
+    <string name="done_button" msgid="1759387181766603361">"Hotovo"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Monitorování sítě"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Toto zařízení je spravováno doménou <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nSprávce může monitorovat aktivitu v síti, včetně e-mailů, aplikací a zabezpečených webů.\n\nChcete-li získat další informace, kontaktujte svého správce."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Vaše aktivita v síti, včetně e-mailů, aplikací a zabezpečených\nwebových stránek může být monitorována třetí stranou.\n\nUmožňují to důvěryhodné identifikační údaje nainstalované ve vašem zařízení."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Zkontrolovat důvěryhodné identifikační údaje"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml
index d27a360..a656783 100644
--- a/packages/SystemUI/res/values-da/strings.xml
+++ b/packages/SystemUI/res/values-da/strings.xml
@@ -203,6 +203,6 @@
     <string name="done_button" msgid="1759387181766603361">"Udfør"</string>
     <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Overvågning af netværk"</string>
     <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Denne enhed er administreret af: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nDin administrator kan overvåge dine netværksaktiviteter, f.eks. e-mails, apps og sikre websites.\n\nFå flere oplysninger ved at kontakte din administrator."</string>
-    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"En tredjepart kan overvåge dine netværksaktiviteter, \nf.eks.e-mails, apps og sikre websites.\n\nBetroede loginoplysninger, der er installeret på enheden, gør dette muligt."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"En tredjepart kan overvåge dine netværksaktiviteter, \nf.eks.e-mails, apps og sikre websites.\n\nBetroede loginoplysninger, der er installeret på din enhed, gør dette muligt."</string>
     <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Kontrollér betroede loginoplysninger"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml
index cca9cbf..df0913b 100644
--- a/packages/SystemUI/res/values-de/strings.xml
+++ b/packages/SystemUI/res/values-de/strings.xml
@@ -201,16 +201,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Benachrichtigungen erscheinen hier"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Greifen Sie jederzeit auf sie zu, indem Sie nach unten wischen.\nWischen Sie für Systemeinstellungen erneut nach unten."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Das Netzwerk wird möglicherweise überwacht."</string>
+    <string name="done_button" msgid="1759387181766603361">"Fertig"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Netzwerküberwachung"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Dieses Gerät wird von <xliff:g id="MANAGING_DOMAIN">%s</xliff:g> verwaltet.\n\nIhr Administrator kann Ihre Netzwerkaktivitäten überwachen, einschließlich E-Mails, Apps und sicheren Websites.\n\nWenden Sie sich für weitere Informationen an Ihren Administrator."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Dritte können Ihre Netzwerkaktivitäten\nüberwachen, einschließlich E-Mails, Apps und sicheren Websites.\n\nDies wird durch vertrauenswürdige Anmeldedaten ermöglicht, die auf Ihrem Gerät installiert sind."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Vertrauenswürdige Anmeldedaten überprüfen"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml
index 37d557c..c109924 100644
--- a/packages/SystemUI/res/values-el/strings.xml
+++ b/packages/SystemUI/res/values-el/strings.xml
@@ -204,7 +204,7 @@
     <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Το δίκτυο ενδέχεται να παρακολουθείται"</string>
     <string name="done_button" msgid="1759387181766603361">"Τέλος"</string>
     <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Παρακολούθηση δικτύου"</string>
-    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Η συσκευή αυτή υποβάλλεται σε διαχείριση από: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nΟ διαχειριστής σας έχει τη δυνατότητα παρακολούθησης της δραστηριότητας δικτύου, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ασφαλών ιστότοπων.\n\nΓια περισσότερες πληροφορίες επικοινωνήστε με το διαχειριστή σας."</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Η συσκευή αυτή διαχειρίζεται από: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nΟ διαχειριστής σας έχει τη δυνατότητα παρακολούθησης της δραστηριότητας δικτύου, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ασφαλών ιστότοπων.\n\nΓια περισσότερες πληροφορίες επικοινωνήστε με το διαχειριστή σας."</string>
     <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Ένα τρίτο μέρος έχει δυνατότητα παρακολούθησης της δραστηριότητας\nδικτύου σας, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ασφαλών ιστότοπων.\n\nΈνα αξιόπιστο διαπιστευτήριο που έχει εγκατασταθεί στη συσκευή σας επιτρέπει κάτι τέτοιο."</string>
     <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Ελέγξτε τα αξιόπιστα διαπιστευτήρια"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml
index 9ef70e0..91da585 100644
--- a/packages/SystemUI/res/values-es-rUS/strings.xml
+++ b/packages/SystemUI/res/values-es-rUS/strings.xml
@@ -201,16 +201,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMÁTICO"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Las notificaciones aparecen aquí."</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Desliza el dedo hacia abajo para acceder al contenido.\nVuelve a deslizar el dedo hacia abajo para acceder a los controles del sistema."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Es posible que la red esté supervisada."</string>
+    <string name="done_button" msgid="1759387181766603361">"Listo"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Supervisión de red"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Este dispositivo es administrado por: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nEl administrador puede supervisar la actividad de la red, incluidos los mensajes de correo electrónico, las aplicaciones y los sitios web seguros.\n\nPara obtener más información, comunícate con el administrador."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Un tercero puede supervisar la actividad de la red,\nincluidos los mensajes de correo electrónico, las aplicaciones y los sitios web seguros.\n\nEsto es posible debido a que hay una credencial de confianza instalada en el dispositivo."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Comprobar credenciales de confianza"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-et-rEE/strings.xml b/packages/SystemUI/res/values-et-rEE/strings.xml
index 155fef8..cde1240 100644
--- a/packages/SystemUI/res/values-et-rEE/strings.xml
+++ b/packages/SystemUI/res/values-et-rEE/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMAATNE"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Märguanded ilmuvad siia"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Juurdepääs igal ajal sõrmega alla pühkides.\nSüsteemi juhtnuppude jaoks pühkige uuesti alla."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Võrku võidakse jälgida"</string>
+    <string name="done_button" msgid="1759387181766603361">"Valmis"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Võrgu jälgimine"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Seadet haldab: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nVõrguadministraator saab jälgida teie võrgutoiminguid, sh meile, rakendusi ja turvalisi veebisaite.\n\nLisateabe saamiseks võtke ühendust administraatoriga."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Kolmas osapool saab jälgida teie\nvõrgutoiminguid, sh meile, rakendusi ja turvalisi veebisaite.\n\nSeda võimaldab teie seadmesse installitud usaldusväärne mandaat."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Kontrolli usaldusväärseid mandaate"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index 71e4714..50733be 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"خودکار"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"اعلان‌ها در اینجا نمایش داده می‌شوند"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"با کشیدن انگشت به طرف پایین به آنها دسترسی پیدا کنید.\nبرای کنترل‌های سیستم دوباره انگشت خود را به سمت پایین بکشید."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"ممکن است شبکه نظارت شده باشد"</string>
+    <string name="done_button" msgid="1759387181766603361">"انجام شد"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"پایش شبکه"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"این دستگاه توسط: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g> مدیریت می‌شود.\n\nسرپرست شما می‌تواند فعالیتتان را در شبکه نظارت کند، از جمله ایمیل‌ها، برنامه‌ها، و وب‌سایت‌های ایمن.\n\nبرای کسب اطلاعات بیشتر، با سرپرستتان تماس بگیرید."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"یک شخص ثالث قادر به نظارت بر فعالیت\nشبکه شما، از جمله ایمیل‌ها، برنامه‌ها، و وب‌سایت‌های ایمن است.\n\nیک اعتبارنامه قابل اعتماد نصب شده بر روی دستگاهتان این کار را امکان‌پذیر می‌کند."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"بررسی اعتبارنامه‌های قابل اعتماد"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml
index 7e30c60..915ba23 100644
--- a/packages/SystemUI/res/values-fi/strings.xml
+++ b/packages/SystemUI/res/values-fi/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Ilmoitukset näkyvät tässä"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Näet ilmoitukset liu\'uttamalla sormea alas ruudulla.\nVoit palauttaa järjestelmän ohjaimet näkyviin liu\'uttamalla sormea alas uudelleen."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Verkkoa saatetaan valvoa"</string>
+    <string name="done_button" msgid="1759387181766603361">"Valmis"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Verkon valvonta"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Tämän laitteen hallinnoija: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nJärjestelmänvalvoja pystyy valvomaan toimiasi verkossa, esimerkiksi sähköpostin, sovellusten ja turvallisten verkkosivustojen käyttöä.\n\nSaat lisätietoja järjestelmänvalvojalta."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Kolmas osapuoli pystyy valvomaan toimiasi verkossa,\n esimerkiksi sähköpostin, sovellusten ja turvallisten verkkosivustojen käyttöä.\n\nLaitteeseesi asennetut luotetut käyttöoikeustiedot tekevät tämän mahdolliseksi."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Tarkista luotetut käyttöoikeustiedot"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml
index 6ae2fbe..584e8b2 100644
--- a/packages/SystemUI/res/values-fr-rCA/strings.xml
+++ b/packages/SystemUI/res/values-fr-rCA/strings.xml
@@ -201,16 +201,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATIQUE"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Les notifications s’affichent ici"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Accédez-y à tout moment en faisant glisser le doigt vers le bas.\nRépétez l\'opération pour accéder aux commandes du système."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Le réseau peut être surveillé"</string>
+    <string name="done_button" msgid="1759387181766603361">"Terminé"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Surveillance réseau"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Cet appareil est géré par : <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nVotre administrateur est en mesure de surveiller l\'activité de votre réseau, y compris les courriels, les applications et les sites Web sécurisés.\n\nPour obtenir plus d\'information à ce sujet, communiquez avec votre administrateur."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Un tiers peut surveiller votre activité réseau,\n y compris les courriels, les applications et les sites Web sécurisés.\n\nUn certificat de confiance installé sur votre appareil rend cela possible."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Vérifier les certificats de confiance"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml
index f57a582..a96ea07 100644
--- a/packages/SystemUI/res/values-fr/strings.xml
+++ b/packages/SystemUI/res/values-fr/strings.xml
@@ -201,16 +201,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATIQUE"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Les notifications s’affichent ici"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Accédez-y à tout moment en faisant glisser le doigt vers le bas.\nRépétez l\'opération pour accéder aux commandes du système."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Il est possible que le réseau soit surveillé."</string>
+    <string name="done_button" msgid="1759387181766603361">"OK"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Surveillance du réseau"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Cet appareil est géré par <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nVotre administrateur a la possibilité de surveiller votre activité sur le réseau, y compris les e-mails, les applications et les sites Web sécurisés.\n\nPour en savoir plus, veuillez contacter votre administrateur."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Il est possible qu\'un tiers surveille votre activité sur le réseau,\ny compris les e-mails, les applications et les sites Web sécurisés.\n\nCela est dû à la présence d\'un certificat de confiance installé sur votre appareil."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Vérifier les certificats de confiance"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml
index 51dfa1b..0003133 100644
--- a/packages/SystemUI/res/values-hi/strings.xml
+++ b/packages/SystemUI/res/values-hi/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"स्वत:"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"सूचनाएं यहां दिखाई देती हैं"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"नीचे स्वाइप करके उन तक कभी भी पहुंचें.\nसिस्टम नियंत्रणों के लिए पुन: नीचे स्वाइप करें."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"नेटवर्क को मॉनिटर किया जा सकता है"</string>
+    <string name="done_button" msgid="1759387181766603361">"पूर्ण"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"नेटवर्क मॉनिटरिंग"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"यह उपकरण <xliff:g id="MANAGING_DOMAIN">%s</xliff:g> के द्वारा प्रबंधित किया जाता है.\n\nआपका व्यवस्थापक आपकी नेटवर्क गतिविधि को, साथ ही ईमेल, एप्लिकेशन, और सुरक्षित वेबसाइटों को मॉनिटर करने में सक्षम है.\n\nअधिक जानकारी के लिए, अपने व्यवस्थापक से संपर्क करें."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"एक तृतीय पक्ष आपकी नेटवर्क\nगतिविधि को, साथ ही ईमेल, एप्लिकेशन, और सुरक्षित वेबसाइटों को मॉनिटर करने में सक्षम है.\n\nआपके उपकरण पर इंस्टॉल किए गए एक विश्वसनीय क्रेडेंशियल के कारण ऐसा हो रहा है."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"विश्वसनीय क्रेडेंशियल की जांच करें"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml
index ff184bb..b9a5e1b 100644
--- a/packages/SystemUI/res/values-hr/strings.xml
+++ b/packages/SystemUI/res/values-hr/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATSKI"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Obavijesti se prikazuju ovdje"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Pristupite im u bilo kojem trenutku tako da prstom trznete prema dolje. \nPonovo prstom trznite prema dolje za kontrole sustava."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Mreža se možda nadzire"</string>
+    <string name="done_button" msgid="1759387181766603361">"Završeno"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Nadzor mreže"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Ovim uređajem upravlja: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nVaš administrator može nadzirati vašu mrežnu aktivnost, uključujući e-poštu, aplikacije i sigurne web-lokacije.\n\nza više informacija kontaktirajte svojeg administratora."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Treća strana može nadzirati vaše mrežne\naktivnosti, uključujući e-poštu, aplikacije i sigurne web-lokacije.\n\nTo omogućuje pouzdana vjerodajnica instalirana na vašem uređaju."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Provjeri pouzdane vjerodajnice"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml
index 6cb213b..32d3abe 100644
--- a/packages/SystemUI/res/values-hu/strings.xml
+++ b/packages/SystemUI/res/values-hu/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"automatikus"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Az értesítések itt jelennek meg."</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Bármikor elérheti őket, ha lefelé húzza az ujját.\nHúzza le az ujját még egyszer a rendszerbeállítások eléréséhez."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Lehet, hogy a hálózat felügyelt"</string>
+    <string name="done_button" msgid="1759387181766603361">"Kész"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Hálózatfelügyelet"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Az eszköz kezelője: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nRendszergazdája képes az Ön hálózati tevékenységének, köztük az e-maileknek, az alkalmazásoknak és a biztonságos webhelyeknek a megfigyelésére.\n\nTovábbi információért forduljon rendszergazdájához."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Egy harmadik fél képes az Ön hálózati\ntevékenységének a megfigyelésére, beleértve az e-maileket, alkalmazásokat és biztonságos webhelyeket.\n\nEgy, az eszközre telepített megbízható tanúsítvány teszi ezt lehetővé."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Megbízható tanúsítványok ellenőrzése"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml
index 145895e..25af411 100644
--- a/packages/SystemUI/res/values-hy-rAM/strings.xml
+++ b/packages/SystemUI/res/values-hy-rAM/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"Ինքնաշխատ"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Ծանուցումները հայտնվում են այստեղ"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Դրանք մատչեք ցանկացած պահի` սահահարվածելով:\nԿրկին սահահարվածեք ներքև` համակարգային կառավարման համար:"</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Ցանցը կարող է վերահսկվել"</string>
+    <string name="done_button" msgid="1759387181766603361">"Պատրաստ է"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Ցանցի մշտադիտարկում"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Այս սարքը կառավարվում է <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>-ի կողմից:\n\nՁեր կառավարիչն ի վիճակի է մշտադիտարկել ձեր ցանցային գործունեությունը, այդ թվում՝ նամակները, հավելվածները և անվտանգ կայքերը:\n\nԼրացուցիչ տեղեկությունների համար դիմեք ձեր կառավարչին:"</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Երրորդ կողմն ի վիճակի է վերահսկել ձեր ցանցային\nգործունեությունը, այդ թվում՝ նամակները, հավելվածները և անվտանգ կայքերը:\n\nՁեր սարքում տեղադրված վստահելի վկայագրերը տալիս են դրա հնարավորությունը:"</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Ստուգել վստահելի վկայագրերը"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml
index cd3b341..fdbcbcc 100644
--- a/packages/SystemUI/res/values-in/strings.xml
+++ b/packages/SystemUI/res/values-in/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"OTOMATIS"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Pemberitahuan muncul di sini"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Akses kapan saja dengan menggesek ke bawah.\nGesek ke bawah sekali lagi untuk kontrol sistem."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Jaringan mungkin dipantau"</string>
+    <string name="done_button" msgid="1759387181766603361">"Selesai"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Pemantauan Jaringan"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Perangkat ini dikelola oleh: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nAdministrator Anda dapat memantau aktivitas jaringan Anda, termasuk email, aplikasi, dan situs web aman.\n\nUntuk informasi selengkapnya, hubungi administrator."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Pihak ketiga dapat memantau aktivitas\njaringan Anda, termasuk email, aplikasi, dan situs web aman.\n\nKredensial tepercaya yang terpasang di perangkat Anda membuatnya dapat dilakukan."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Periksa kredensial tepercaya"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml
index b4cc87d..1c0093c 100644
--- a/packages/SystemUI/res/values-ja/strings.xml
+++ b/packages/SystemUI/res/values-ja/strings.xml
@@ -201,16 +201,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"自動"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"ここに通知が表示されます"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"下にスワイプすると、いつでも通知を表示できます。\nシステムを管理するにはもう一度下にスワイプしてください。"</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"ネットワークが監視される場合があります"</string>
+    <string name="done_button" msgid="1759387181766603361">"完了"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"ネットワーク監視"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"この端末は<xliff:g id="MANAGING_DOMAIN">%s</xliff:g>によって管理されています。\n\n管理者はあなたのネットワークアクティビティ(メール、アプリ、保護されたウェブサイトなど)を監視できます。\n\n詳しくは管理者にお問い合わせください。"</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"第三者があなたのネットワーク\nアクティビティ(メール、アプリ、保護されたウェブサイトなど)を監視できます。\n\nこれは、信頼できる認証情報が端末にインストールされているためです。"</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"信頼できる認証情報を確認"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ka-rGE/strings.xml b/packages/SystemUI/res/values-ka-rGE/strings.xml
index 9c7aa9c..2349c32 100644
--- a/packages/SystemUI/res/values-ka-rGE/strings.xml
+++ b/packages/SystemUI/res/values-ka-rGE/strings.xml
@@ -178,7 +178,7 @@
     <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> მოწყობილობა)"</string>
     <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth გამორთულია"</string>
     <string name="quick_settings_brightness_label" msgid="6968372297018755815">"სიკაშკაშე"</string>
-    <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"ავტოროტაცია"</string>
+    <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"ავტო მობრუნება"</string>
     <string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"როტაციის ჩაკეტვა"</string>
     <string name="quick_settings_ime_label" msgid="7073463064369468429">"შეყვანის მეთოდი"</string>
     <string name="quick_settings_location_label" msgid="5011327048748762257">"მდებარეობა"</string>
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"ავტომატურად"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"შეტყობინებები აქ გამოჩნდება"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"მათზე წვდომისათვის, ნებისმიერ დროს გადაფურცლეთ ქვემოთ.\nსისტემის კონტროლისთვისაც გადაფურცლეთ ქვემოთ."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"შესაძლოა ქსელი მონიტორინგის ქვეშ იმყოფება"</string>
+    <string name="done_button" msgid="1759387181766603361">"დასრულდა"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"ქსელის მონიტორინგი"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"თქვენ მოწყობილობის მმართველი არის: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nთქვენს ადმინისტრატოს შეუძლია განახორციელოს თქვენი ქსელის აქტივობის მონიტორინგი, მათ შორის ელფოსტების, აპების და უსაფრთხო ვებსაიტების მონიტორინგი.\n\nდამატებითი ინფორმაციისათვის, დაუკავშირდით ადმინისტრატორს."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"მესამე მხარეს შეუძლია განახორციელოდს თქვენი ქსელის \nაქტივობა, მათ შორის ელფოსტები, აპები და უსაფრთხო ვებსაიტები.\n\nეს შესაძლებელია თქვენს მოწყობილობაზე დაყენებული სანდო ავთენტიკაციის მონაცემების საშუალებით."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"სანდო ავთენტიკაციის მონაცემების შემოწმება"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-km-rKH/strings.xml b/packages/SystemUI/res/values-km-rKH/strings.xml
index 2762d06..8fb09ad 100644
--- a/packages/SystemUI/res/values-km-rKH/strings.xml
+++ b/packages/SystemUI/res/values-km-rKH/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"ស្វ័យប្រវត្តិ"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"ការ​ជូន​ដំណឹង​​បង្ហាញ​​នៅ​ទីនេះ"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"ចូល​ដំណើរការ​ពួក​វា​ពេល​ណា​មួយ​ដោយ​អូស​ចុះក្រោម។\nអូស​ចុះក្រោម​ម្ដង​ទៀត​ ដើម្បី​ពិនិត្យ​ប្រព័ន្ធ។"</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"បណ្ដាញ​អាច​ត្រូវ​បាន​តាមដាន"</string>
+    <string name="done_button" msgid="1759387181766603361">"រួចរាល់"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"ការ​ពិនិត្យ​បណ្ដាញ"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"ឧបករណ៍​នេះ​ត្រូវ​បាន​គ្រប់គ្រង​ដោយ៖ <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>។\n\nអ្នក​គ្រប់គ្រង​របស់​អ្នក​អាច​ពិនិត្យ​សកម្មភាព​បណ្ដាញ​របស់​អ្នក​​រួមមាន អ៊ីមែល, កម្មវិធី និង​តំបន់​បណ្ដាញ​មាន​សុវត្ថិភាព។\n\nចំពោះ​ព័ត៌មាន​បន្ថែម​ សូម​ទាក់ទង​អ្នក​គ្រប់គ្រង​របស់​អ្នក។"</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"ភាគី​ទី​បី​អាច​​ពិនិត្យ​សកម្មភាព \n បណ្ដាញ​របស់​អ្នក​រួមមាន អ៊ីមែល, កម្មវិធី និង​សុវត្ថិភាព​តំបន់បណ្ដាញ។\n\n ព័ត៌មាន​ដែល​ទុក​ចិត្ត​បាន​ដំឡើង​ក្នុង​ឧបករណ៍​របស់​អ្នក​អាច​ធ្វើ​ការងារ​នេះ​បាន។"</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"ពិនិត្យ​​​ព័ត៌មាន​សម្ងាត់​​ដែល​​​ទុក​ចិត្ត"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml
index fed9cbf..5472235 100644
--- a/packages/SystemUI/res/values-ko/strings.xml
+++ b/packages/SystemUI/res/values-ko/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"자동"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"알림이 여기에 표시됨"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"아래로 스와이프하여 언제든 액세스하세요.\n한 번 더 아래로 스와이프하면 시스템 관리로 이동합니다."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"네트워크가 모니터링될 수 있음"</string>
+    <string name="done_button" msgid="1759387181766603361">"완료"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"네트워크 모니터링"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"이 기기는 <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>에서 관리합니다.\n\n관리자는 이메일, 앱 및 보안 웹사이트를 포함한 네트워크 활동을 모니터링할 수 있습니다.\n\n자세한 정보는 관리자에게 문의하세요."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">\n\n"기기에 신뢰할 수 있는 자격증명이 설치되어있기 때문에 제3자가 이메일, 앱 및 보안 웹사이트를 포함한 네트워크\n활동을 모니터링할 수 있습니다."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"신뢰할 수 있는 자격증명 확인"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml
index 076ef27..ddafcb3 100644
--- a/packages/SystemUI/res/values-lt/strings.xml
+++ b/packages/SystemUI/res/values-lt/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATINIS"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Pranešimai rodomi čia"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Perbraukę žemyn bet kuriuo metu pasieksite pranešimus.\nJei norite naudoti sistemos valdiklius, perbraukite žemyn dar kartą."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Tinklas gali būti stebimas"</string>
+    <string name="done_button" msgid="1759387181766603361">"Atlikta"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Tinklo stebėjimas"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Šį įrenginį tvarko <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nAdministratorius gali stebėti jūsų tinklo veiklą, įskaitant el. paštą, programas ir saugias svetaines.\n\nJei norite gauti daugiau informacijos, susisiekite su administratoriumi."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Trečioji šalis gali stebėti jūsų tinklo\nveiklą, įskaitant el. paštą, programas ir saugias svetaines.\n\nVisa tai įmanoma dėl jūsų įrenginyje įdiegtų patikimų prisijungimo duomenų."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Tikrinti patikimus prisijungimo duomenis"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml
index b483528..0a04619 100644
--- a/packages/SystemUI/res/values-lv/strings.xml
+++ b/packages/SystemUI/res/values-lv/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMĀTISKI"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Šeit tiek rādīti paziņojumi"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Piekļūstiet tiem jebkurā laikā, velkot uz leju.\nVēlreiz velciet, lai tiktu parādītas sistēmas vadīklas."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Iespējams, tīklā veiktās darbības tiek pārraudzītas."</string>
+    <string name="done_button" msgid="1759387181766603361">"Gatavs"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Tīkla pārraudzība"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Šo ierīci pārvalda domēns <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nJūsu administrators var pārraudzīt darbības, ko veicat tīklā, tostarp e-pasta ziņojumus, lietotnes un drošās vietnes.\n\nLai iegūtu plašāku informāciju, sazinieties ar savu administratoru."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Trešā puse var pārraudzīt darbības, ko veicat tīklā,\ntostarp e-pasta ziņojumus, lietotnes un drošās vietnes.\n\nTas ir iespējams, jo jūsu ierīcē ir instalēti uzticami akreditācijas dati."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Pārbaudīt uzticamos akreditācijas datus"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-mn-rMN/strings.xml b/packages/SystemUI/res/values-mn-rMN/strings.xml
new file mode 100644
index 0000000..aea7be1
--- /dev/null
+++ b/packages/SystemUI/res/values-mn-rMN/strings.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/**
+ * Copyright (c) 2009, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0 
+ *
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License.
+ */
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="7164937344850004466">"Систем UI"</string>
+    <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Цэвэрлэх"</string>
+    <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Жагсаалтаас устгах"</string>
+    <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Апп мэдээлэл"</string>
+    <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"Сүүлийн апп хоосон"</string>
+    <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Сүүлийн апп-уудыг хаах"</string>
+  <plurals name="status_bar_accessibility_recent_apps">
+    <item quantity="one" msgid="5854176083865845541">"1 сүүлийн апп"</item>
+    <item quantity="other" msgid="1040784359794890744">"%d сүүлийн апп"</item>
+  </plurals>
+    <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Мэдэгдэл байхгүй"</string>
+    <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Гарсан"</string>
+    <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Мэдэгдэл"</string>
+    <string name="battery_low_title" msgid="2783104807551211639">"Цэнэглэгчийг холбоно уу"</string>
+    <string name="battery_low_subtitle" msgid="1752040062087829196">"Батерей дуусаж байна."</string>
+    <string name="battery_low_percent_format" msgid="1077244949318261761">"<xliff:g id="NUMBER">%d%%</xliff:g> үлдсэн"</string>
+    <string name="invalid_charger" msgid="4549105996740522523">"USB цэнэглэлт дэмжигдэхгүй байна.\nЗөвхөн нийлүүлэгдсэн цэнэглэгчийг ашиглана уу."</string>
+    <string name="battery_low_why" msgid="7279169609518386372">"Батерей ашиглах"</string>
+    <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Тохиргоо"</string>
+    <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
+    <string name="status_bar_settings_airplane" msgid="4879879698500955300">"Нислэгийн горим"</string>
+    <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Дэлгэцийг автоматаар эргүүлэх"</string>
+    <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ХААХ"</string>
+    <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"АВТОМАТ"</string>
+    <string name="status_bar_settings_notifications" msgid="397146176280905137">"Мэдэгдэл"</string>
+    <string name="bluetooth_tethered" msgid="7094101612161133267">"Блютүүтыг модем болгож байна"</string>
+    <string name="status_bar_input_method_settings_configure_input_methods" msgid="3504292471512317827">"Оруулах аргыг тохируулах"</string>
+    <string name="status_bar_use_physical_keyboard" msgid="7551903084416057810">"Бодит гар"</string>
+    <string name="usb_device_permission_prompt" msgid="834698001271562057">"<xliff:g id="APPLICATION">%1$s</xliff:g> апп-г USB төхөөрөмжид хандахыг зөвшөөрөх үү?"</string>
+    <string name="usb_accessory_permission_prompt" msgid="5171775411178865750">"<xliff:g id="APPLICATION">%1$s</xliff:g> апп-г USB төхөөрөмжид хандахыг зөвшөөрөх үү?"</string>
+    <string name="usb_device_confirm_prompt" msgid="5161205258635253206">"Энэ USB төхөөрөмж холбогдох үед <xliff:g id="ACTIVITY">%1$s</xliff:g>-г нээх үү?"</string>
+    <string name="usb_accessory_confirm_prompt" msgid="3808984931830229888">"Энэ USB төхөөрөмж холбогдох үед <xliff:g id="ACTIVITY">%1$s</xliff:g>-г нээх үү?"</string>
+    <string name="usb_accessory_uri_prompt" msgid="513450621413733343">"Энэ USB хэрэгсэл дээр суулгасан апп ажиллаагүй байна. Энэ хэрэгслийн талаар <xliff:g id="URL">%1$s</xliff:g>-с дэлгэрэнгүй үзнэ үү."</string>
+    <string name="title_usb_accessory" msgid="4966265263465181372">"USB төхөөрөмж"</string>
+    <string name="label_view" msgid="6304565553218192990">"Үзэх"</string>
+    <string name="always_use_device" msgid="1450287437017315906">"Энэ USB төхөөрөмжийг үндсэн болгон ашиглах"</string>
+    <string name="always_use_accessory" msgid="1210954576979621596">"Энэ USB төхөөрөмжийг үндсэн болгон ашиглах"</string>
+    <string name="usb_debugging_title" msgid="4513918393387141949">"USB дебаг хийхийг зөвшөөрөх үү?"</string>
+    <string name="usb_debugging_message" msgid="2220143855912376496">"Компьютерийн RSA түлхүүрийн хурууны хээ :\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string>
+    <string name="usb_debugging_always" msgid="303335496705863070">"Энэ компьютерээс орохыг байнга зөвшөөрөх"</string>
+    <string name="compat_mode_on" msgid="6623839244840638213">"Дэлгэц дүүргэх бол өсгөнө үү"</string>
+    <string name="compat_mode_off" msgid="4434467572461327898">"Дэлгэц дүүргэх бол татна уу"</string>
+    <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Дэлгэцийн агшинг хадгалж байна…"</string>
+    <string name="screenshot_saving_title" msgid="8242282144535555697">"Дэлгэцийн агшинг хадгалж байна…"</string>
+    <string name="screenshot_saving_text" msgid="2419718443411738818">"Дэлгэцийн агшин хадгалагдав."</string>
+    <string name="screenshot_saved_title" msgid="6461865960961414961">"Дэлгэцийн агшинг авсан."</string>
+    <string name="screenshot_saved_text" msgid="1152839647677558815">"Дэлгэцийн агшныг харах бол хүрнэ үү."</string>
+    <string name="screenshot_failed_title" msgid="705781116746922771">"Дэлгэцийн агшинг авч чадсангүй."</string>
+    <string name="screenshot_failed_text" msgid="8134011269572415402">"Дэлгэцийн агшинг хадгалж чадсангүй. Сан ашиглагдаж байгаа бололтой."</string>
+    <string name="usb_preference_title" msgid="6551050377388882787">"USB файл шилжүүлэх сонголт"</string>
+    <string name="use_mtp_button_title" msgid="4333504413563023626">"Медиа тоглуулагч(MTP) болгон залгах"</string>
+    <string name="use_ptp_button_title" msgid="7517127540301625751">"Камер болгон(PTP) залгах"</string>
+    <string name="installer_cd_button_title" msgid="2312667578562201583">"Мас-д зориулсан  Андройд Файл Шилжүүлэх апп-г суулгана уу"</string>
+    <string name="accessibility_back" msgid="567011538994429120">"Буцах"</string>
+    <string name="accessibility_home" msgid="8217216074895377641">"Гэрийн"</string>
+    <string name="accessibility_menu" msgid="316839303324695949">"Цэс"</string>
+    <string name="accessibility_recent" msgid="8571350598987952883">"Сүүлийн апп"</string>
+    <string name="accessibility_ime_switch_button" msgid="5032926134740456424">"Оруулах аргыг сэлгэх товч."</string>
+    <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Тохиромжтой өсгөх товч."</string>
+    <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Жижгээс том дэлгэцрүү өсгөх."</string>
+    <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Блютүүт холбогдсон."</string>
+    <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Блютүүт тасрав."</string>
+    <string name="accessibility_no_battery" msgid="358343022352820946">"Батерей байхгүй."</string>
+    <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Батерей нэг баганатай."</string>
+    <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Батерей хоёр баганатай."</string>
+    <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Батерей гурван баганатай."</string>
+    <string name="accessibility_battery_full" msgid="8909122401720158582">"Батерей дүүрэн."</string>
+    <string name="accessibility_no_phone" msgid="4894708937052611281">"Утас байхгүй."</string>
+    <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Утас нэг баганатай."</string>
+    <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Утас хоёр баганатай."</string>
+    <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Утас гурван баганатай."</string>
+    <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Утасны дохио дүүрэн."</string>
+    <string name="accessibility_no_data" msgid="4791966295096867555">"Дата байхгүй."</string>
+    <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Дата нэг баганатай."</string>
+    <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Дата хоёр баганатай."</string>
+    <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Дата гурван баганатай."</string>
+    <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Дата дохио дүүрэн."</string>
+    <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi унтарсан."</string>
+    <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi салав."</string>
+    <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wifi нэг баганатай."</string>
+    <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wifi хоёр баганатай."</string>
+    <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wifi гурван баганатай."</string>
+    <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wifi дохио дүүрэн."</string>
+    <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX байхгүй."</string>
+    <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"WiMAX нэг багана."</string>
+    <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX хоёр баганатай."</string>
+    <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX гурван баганатай."</string>
+    <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX дохио дүүрэн."</string>
+    <string name="accessibility_no_signal" msgid="7064645320782585167">"Дохио байхгүй."</string>
+    <string name="accessibility_not_connected" msgid="6395326276213402883">"Холбогдоогүй."</string>
+    <string name="accessibility_zero_bars" msgid="3806060224467027887">"Тэг баганатай."</string>
+    <string name="accessibility_one_bar" msgid="1685730113192081895">"Нэг баганатай."</string>
+    <string name="accessibility_two_bars" msgid="6437363648385206679">"Хоёр багана."</string>
+    <string name="accessibility_three_bars" msgid="2648241415119396648">"Гурван баганатай."</string>
+    <string name="accessibility_signal_full" msgid="9122922886519676839">"Дохио дүүрэн."</string>
+    <string name="accessibility_desc_on" msgid="2385254693624345265">"Идэвхижсэн."</string>
+    <string name="accessibility_desc_off" msgid="6475508157786853157">"Унтраах"</string>
+    <string name="accessibility_desc_connected" msgid="8366256693719499665">"Холбогдсон."</string>
+    <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string>
+    <string name="accessibility_data_connection_1x" msgid="994133468120244018">"1 X"</string>
+    <string name="accessibility_data_connection_hspa" msgid="2032328855462645198">"HSPA"</string>
+    <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string>
+    <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string>
+    <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string>
+    <string name="accessibility_data_connection_lte" msgid="5413468808637540658">"LTE"</string>
+    <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string>
+    <string name="accessibility_data_connection_roaming" msgid="5977362333466556094">"Рүүминг"</string>
+    <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string>
+    <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"Wi-Fi"</string>
+    <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM байхгүй."</string>
+    <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Блютүүт модем болж байна."</string>
+    <string name="accessibility_airplane_mode" msgid="834748999790763092">"Нислэгийн горим"</string>
+    <string name="accessibility_battery_level" msgid="7451474187113371965">"Батерей <xliff:g id="NUMBER">%d</xliff:g> хувьтай."</string>
+    <string name="accessibility_settings_button" msgid="799583911231893380">"Системийн тохиргоо."</string>
+    <string name="accessibility_notifications_button" msgid="4498000369779421892">"Мэдэгдэл."</string>
+    <string name="accessibility_remove_notification" msgid="3603099514902182350">"Мэдэгдлийг цэвэрлэх."</string>
+    <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS идэвхтэй."</string>
+    <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"GPS хайж байна."</string>
+    <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTypewriter идэвхтэй болов."</string>
+    <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Хонхны чичиргээ."</string>
+    <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Хонхыг хаах."</string>
+    <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> байхгүй."</string>
+    <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Мэдэгдэл хаагдсан."</string>
+    <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Мэдэгдлийн хураангуй самбар"</string>
+    <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Шуурхай тохиргоо."</string>
+    <string name="accessibility_desc_recent_apps" msgid="9014032916410590027">"Сүүлийн апп"</string>
+    <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Хэрэглэгч <xliff:g id="USER">%s</xliff:g>."</string>
+    <string name="accessibility_quick_settings_wifi" msgid="6099781031669728709">"<xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="NETWORK">%2$s</xliff:g>"</string>
+    <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Мобайл <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string>
+    <string name="accessibility_quick_settings_battery" msgid="1480931583381408972">"Батерей <xliff:g id="STATE">%s</xliff:g>."</string>
+    <string name="accessibility_quick_settings_airplane" msgid="4196876722090224753">"Нислэгийн горим <xliff:g id="STATE">%s</xliff:g>."</string>
+    <string name="accessibility_quick_settings_bluetooth" msgid="5749054971341882340">"Блютүүт <xliff:g id="STATE">%s</xliff:g>."</string>
+    <string name="accessibility_quick_settings_alarm" msgid="3959908972897295660">"Сэрүүлгийг <xliff:g id="TIME">%s</xliff:g>-д тохируулсан."</string>
+    <string name="data_usage_disabled_dialog_3g_title" msgid="5257833881698644687">"2G-3G дата идэвхгүй болов"</string>
+    <string name="data_usage_disabled_dialog_4g_title" msgid="4789143363492682629">"4G дата идэвхгүй байна"</string>
+    <string name="data_usage_disabled_dialog_mobile_title" msgid="1046047248844821202">"Мобайл дата идэвхгүй болов"</string>
+    <string name="data_usage_disabled_dialog_title" msgid="2086815304858964954">"Дата идэвхгүй болов"</string>
+    <string name="data_usage_disabled_dialog" msgid="3853117269051806280">"Та заасан дата ашиглалтын хязгаарт хүрэв.\n\nХэрэв та датаг дахин идэвхжүүлбэл операторт төлбөр төлөх хэрэгтэй."</string>
+    <string name="data_usage_disabled_dialog_enable" msgid="7729772039208664606">"Дата дахин идэвхжүүлэх"</string>
+    <string name="status_bar_settings_signal_meter_disconnected" msgid="1940231521274147771">"Интернет холболт байхгүй"</string>
+    <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="6557486452774597820">"Wi-Fi холбогдсон"</string>
+    <string name="gps_notification_searching_text" msgid="8574247005642736060">"GPS хайж байна"</string>
+    <string name="gps_notification_found_text" msgid="4619274244146446464">"GPS байршил"</string>
+    <string name="accessibility_location_active" msgid="2427290146138169014">"Байршлын хүсэлтүүд идэвхтэй"</string>
+    <string name="accessibility_clear_all" msgid="5235938559247164925">"Бүх мэдэгдлийг цэвэрлэх."</string>
+    <string name="status_bar_notification_inspect_item_title" msgid="1163547729015390250">"Апп мэдээлэл"</string>
+    <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Дэлгэц автоматаар эргэнэ."</string>
+    <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"Дэлгэц хэвтээ чиглэлд түгжигдсэн."</string>
+    <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"Дэлгэц босоо чиглэлээр түгжигдсэн."</string>
+    <string name="jelly_bean_dream_name" msgid="5992026543636816792">"BeanFlinger"</string>
+    <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string>
+    <string name="ethernet_label" msgid="7967563676324087464">"Этернет"</string>
+    <string name="quick_settings_airplane_mode_label" msgid="5510520633448831350">"Нислэгийн горим"</string>
+    <string name="quick_settings_battery_charging_label" msgid="490074774465309209">"Цэнэглэж байна, <xliff:g id="NUMBER">%d</xliff:g><xliff:g id="PERCENT">%%</xliff:g>"</string>
+    <string name="quick_settings_battery_charged_label" msgid="8865413079414246081">"Цэнэглэгдсэн"</string>
+    <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Блютүүт"</string>
+    <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Блютүүт (<xliff:g id="NUMBER">%d</xliff:g> төхөөрөмж)"</string>
+    <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Блютүүт унтраалттай"</string>
+    <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Тодрол"</string>
+    <string name="quick_settings_rotation_unlocked_label" msgid="336054930362580584">"Автомат эргэх"</string>
+    <string name="quick_settings_rotation_locked_label" msgid="8058646447242565486">"Эргүүлэлт түгжигдсэн"</string>
+    <string name="quick_settings_ime_label" msgid="7073463064369468429">"Оруулах арга"</string>
+    <string name="quick_settings_location_label" msgid="5011327048748762257">"Байршил"</string>
+    <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Байршил идэвхгүй"</string>
+    <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Медиа төхөөрөмж"</string>
+    <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string>
+    <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Зөвхөн яаралтай дуудлага"</string>
+    <string name="quick_settings_settings_label" msgid="5326556592578065401">"Тохиргоо"</string>
+    <string name="quick_settings_time_label" msgid="4635969182239736408">"Цаг"</string>
+    <string name="quick_settings_user_label" msgid="5238995632130897840">"Би"</string>
+    <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string>
+    <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Холбогдоогүй"</string>
+    <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Сүлжээгүй"</string>
+    <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi унтарсан"</string>
+    <string name="quick_settings_wifi_display_label" msgid="6893592964463624333">"Wi-Fi Дэлгэц"</string>
+    <string name="quick_settings_wifi_display_no_connection_label" msgid="2355298740765736918">"Утасгүй дэлгэц"</string>
+    <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Тодрол"</string>
+    <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АВТОМАТ"</string>
+    <string name="status_bar_help_title" msgid="1199237744086469217">"Мэдэгдэл энд харагдана"</string>
+    <string name="status_bar_help_text" msgid="7874607155052076323">"Доош татаад тэдгээрт хандана уу.\nДахин доош татаад систем контролд хандана уу."</string>
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Сүлжээ хянагдаж байж болзошгүй"</string>
+    <string name="done_button" msgid="1759387181766603361">"Дууссан"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Сүлжээний Хяналт"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Энэ төхөөрөмжийг удирдагч: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nТаны админ имэйл, апп-ууд болон аюулгүй вебсайтуудыг оруулан таны сүлжээний үйл ажиллагааг хянах боломжтой.\n\nДэлгэрэнгүй мэдээллийг өөрийн админтай холбогдож авна уу."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Гуравдагч талын этгээд таны сүлжээг хянаж байж болзошгүй\nүүнд имэйл, апп-ууд болон аюулгүй вебсайтууд багтана.\n\nТаны төхөөрөмж дээр суулгасан итгэмжлэгдсэн жуух энэ боломжоор хангаж байна."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Итгэмжлэгдсэн жуухуудыг шалгах"</string>
+</resources>
diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml
index c6ccbc4..aea7be1 100644
--- a/packages/SystemUI/res/values-mn/strings.xml
+++ b/packages/SystemUI/res/values-mn/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АВТОМАТ"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Мэдэгдэл энд харагдана"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Доош татаад тэдгээрт хандана уу.\nДахин доош татаад систем контролд хандана уу."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Сүлжээ хянагдаж байж болзошгүй"</string>
+    <string name="done_button" msgid="1759387181766603361">"Дууссан"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Сүлжээний Хяналт"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Энэ төхөөрөмжийг удирдагч: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nТаны админ имэйл, апп-ууд болон аюулгүй вебсайтуудыг оруулан таны сүлжээний үйл ажиллагааг хянах боломжтой.\n\nДэлгэрэнгүй мэдээллийг өөрийн админтай холбогдож авна уу."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Гуравдагч талын этгээд таны сүлжээг хянаж байж болзошгүй\nүүнд имэйл, апп-ууд болон аюулгүй вебсайтууд багтана.\n\nТаны төхөөрөмж дээр суулгасан итгэмжлэгдсэн жуух энэ боломжоор хангаж байна."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Итгэмжлэгдсэн жуухуудыг шалгах"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ms-rMY/strings.xml b/packages/SystemUI/res/values-ms-rMY/strings.xml
index 258226b..bcc3e48 100644
--- a/packages/SystemUI/res/values-ms-rMY/strings.xml
+++ b/packages/SystemUI/res/values-ms-rMY/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Pemberitahuan dipaparkan di sini"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Akses panel pada bila-bila masa dengan meleret ke bawah.\nLeret ke bawah sekali lagi untuk mendapatkan kawalan sistem."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Rangkaian mungkin dipantau"</string>
+    <string name="done_button" msgid="1759387181766603361">"Selesai"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Pemantauan Rangkaian"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Peranti ini diuruskan oleh: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nPentadbir anda boleh memantau aktiviti rangkaian anda, termasuk e-mel, apl dan tapak web selamat.\n\nUntuk maklumat lanjut, hubungi pentadbir anda."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Pihak ketiga boleh memantau aktiviti \nrangkaian anda, termasuk e-mel, apl dan tapak web selamat.\n\nBukti kelayakan dipercayai yang dipasang pada peranti anda membolehkan perkara ini."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Semak bukti kelayakan dipercayai"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ne-rNP/strings.xml b/packages/SystemUI/res/values-ne-rNP/strings.xml
index 4655313..18dc0f9 100644
--- a/packages/SystemUI/res/values-ne-rNP/strings.xml
+++ b/packages/SystemUI/res/values-ne-rNP/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"स्वतः"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"यहाँ जानकारीहरू देखा पर्छन्"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"तल हुत्त्याएर तिनीहरूलाई सधैं पहुँच गर्नुहोस्\nप्रणाली नियन्त्रणको लागि पुनः तल हुत्त्याउनुहोस्"</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"सञ्जाल अनुगमित हुन सक्छ"</string>
+    <string name="done_button" msgid="1759387181766603361">"भयो"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"सञ्जाल निगरानी"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"यो उपकरण <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>द्वारा प्रबन्धित छ। \n \n तपाईँको प्रशासक तपाईँको अनुप्रयोग र सुरक्षित वेब साइट लगायत सञ्जाल गतिविधि अनुगमन गर्न सक्षम छ। \n \n थप जानकारीको लागि तपाईँको प्रशासकसँग सम्पर्क राख्नुहोस्।"</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"एक तेस्रो पक्ष तपाईँको सञ्जाल\n गतिविधि, इमेल, अनुप्रयोग र सुरक्षित वेबसाइट अनुगमन गर्न सक्षम छ। \n \n तपाईँको उपकरणमा स्थापित एक विश्वसनीय प्रामाणिक डेटाले सम्भव तुल्याइरहेको छ।"</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"विश्वसनीय प्रामाणिक डेटा जाँच गर्नुहोस्"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml
index 889540b..9bcfb10 100644
--- a/packages/SystemUI/res/values-pl/strings.xml
+++ b/packages/SystemUI/res/values-pl/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATYCZNA"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Tutaj pokazują się powiadomienia"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Możesz je otworzyć w dowolnej chwili, przesuwając w dół.\nPrzesuń jeszcze raz w dół, by otworzyć ustawienia systemowe."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Sieć może być monitorowana"</string>
+    <string name="done_button" msgid="1759387181766603361">"Gotowe"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Monitorowanie sieci"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"To urządzenie jest zarządzane w domenie <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nAdministrator może monitorować Twoją aktywność w sieci, w tym e-maile, aplikacje i bezpieczne witryny.\n\nWięcej informacji uzyskasz od administratora."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Firma zewnętrzna może monitorować Twoją aktywność w sieci,\nw tym e-maile, aplikacje i bezpieczne witryny.\n\nPozwalają na to zaufane dane uwierzytelniające zainstalowane na tym urządzeniu."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Sprawdź zaufane dane uwierzytelniające"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml
index 6e3513a..735733f 100644
--- a/packages/SystemUI/res/values-pt-rPT/strings.xml
+++ b/packages/SystemUI/res/values-pt-rPT/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMÁTICO"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"As notificações são apresentadas aqui"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Pode aceder em qualquer altura, deslizando rapidamente para baixo com o dedo.\nDeslize novamente para baixo para aceder aos controlos do sistema."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"A rede pode ser monitorizada"</string>
+    <string name="done_button" msgid="1759387181766603361">"Concluído"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Monitorização da Rede"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Este dispositivo é gerido por: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nO seu administrador pode monitorizar a sua atividade de rede, incluindo mensagens de email, aplicações e Websites seguros.\n\nPara obter mais informações, contacte o seu administrador."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"A sua atividade\nde rede, incluindo mensagens de email, aplicações e Websites seguros, pode ser monitorizada por terceiros.\n\nEsta situação é possível graças a uma credencial fidedigna instalada no seu dispositivo."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Verificar credenciais fidedignas"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml
index 5ff9fb4..1dbf90e 100644
--- a/packages/SystemUI/res/values-pt/strings.xml
+++ b/packages/SystemUI/res/values-pt/strings.xml
@@ -201,16 +201,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"As notificações aparecem aqui"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Acesse a qualquer momento deslizando para baixo.\nDeslize para baixo novamente para acessar os controles do sistema."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"A rede pode ser monitorada"</string>
+    <string name="done_button" msgid="1759387181766603361">"Concluído"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Monitoramento de rede"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Este dispositivo é gerenciado por: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nO administrador pode monitorar sua atividade na rede, incluindo e-mails, aplicativos e websites seguros.\n\nPara mais informações, entre em contato com o administrador."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Sua atividade na rede, incluindo e-mails, aplicativos\ne websites seguros, pode ser monitorada por terceiros.\n\nUma credencial confiável instalada no dispositivo permite o monitoramento."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Verificar credenciais confiáveis"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml
index 79fcc21..42d06c3 100644
--- a/packages/SystemUI/res/values-ro/strings.xml
+++ b/packages/SystemUI/res/values-ro/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMAT"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Notificările se afişează aici"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Accesaţi-le oricând glisând în jos.\nGlisaţi în jos din nou pentru comenzile sistemului."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Rețeaua poate fi monitorizată"</string>
+    <string name="done_button" msgid="1759387181766603361">"Terminat"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Monitorizarea rețelei"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Acest dispozitiv este gestionat de: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nAdministratorul este capabil să monitorizeze activitatea dvs. în rețea, inclusiv mesajele e-mail, aplicațiile și site-urile securizate.\n\nPentru mai multe informații, contactați administratorul."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"O terță parte poate monitoriza activitatea dvs. în\nrețea, inclusiv mesajele e-mail, aplicațiile și site-urile securizate.\n\nAcest lucru este posibil deoarece există o acreditare de încredere instalată pe dispozitivul dvs."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Verificați acreditările de încredere"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml
index bbc2dc0..215467a 100644
--- a/packages/SystemUI/res/values-ru/strings.xml
+++ b/packages/SystemUI/res/values-ru/strings.xml
@@ -203,16 +203,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АВТОНАСТРОЙКА"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Это панель уведомлений"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Ее можно открыть, пролистнув экран вниз.\nЧтобы открыть настройки, проведите пальцем вниз ещё раз."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Действия в сети могут отслеживаться"</string>
+    <string name="done_button" msgid="1759387181766603361">"Готово"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Мониторинг сети"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Устройством управляет администратор домена <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nОн может отслеживать ваши действия в сети, в том числе просматривать письма, приложения и список посещенных веб-сайтов.\n\nЗа дополнительной информацией обратитесь к администратору."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Администратор может отслеживать ваши действия в сети.\nНапример, он может просматривать ваши письма, приложения и список посещенных сайтов.\n\nЭто возможно благодаря надежному сертификату, установленному на устройстве."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Настройки сертификатов"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-si-rLK/strings.xml b/packages/SystemUI/res/values-si-rLK/strings.xml
index 049c4d7..cbf3400 100644
--- a/packages/SystemUI/res/values-si-rLK/strings.xml
+++ b/packages/SystemUI/res/values-si-rLK/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"ස්වයංක්‍රීය"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"දැනුම්දීම් මෙතන පෙන්නුම් කරයි"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"පහලට සර්පණය කිරීමෙන් ඕනෑම වෙලාවක ඒවා වෙත පිවිසෙන්න.\nපද්ධති පාලක සඳහා නැවත පහළට සර්පණය කරන්න."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"ඇතැම් විට ජාලය නිරීක්ෂණය විය හැක"</string>
+    <string name="done_button" msgid="1759387181766603361">"හරි"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"ජාල නිරීක්ෂණය කිරීම"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"මෙම උපාංගය කළමනාකරණය කරනුයේ: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nඔබගේ පරිපාලකයා ඊ-තැපැල්, යෙදුම්, සහ ආරක්‍ෂිත වෙබ් අඩවි ඇතුළුව ඔබගේ ජාල ක්‍රියාකාරකම් නිරීක්ෂණය කිරීමට හැකියාව ඇත.\n\nවැඩි විස්තර සඳහා, ඔබේ පරිපාලකයා සම්බන්ධ කරගන්න."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"තුන්වන පාර්ශවයකට ඔබගේ ජාලය නිරීක්ෂණය කිරීමට හැකියාව ඇත\nක්‍රියාකාරකම්, ඊ-තැපැල්, යෙදුම් සහ ආරක්‍ෂිත වෙබ් අඩවි ඇතුළුව.\n\nඔබගේ උපාංගය මත ස්ථාපිත විශ්වාසදයී අක්තපත්‍ර මෙය සිදුවීමේ හැකියාව ඇතිකරයි."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"විශ්වාසදායී අක්තපත්‍ර පරික්ෂා කරන්න"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml
index a822c1f..c708bce 100644
--- a/packages/SystemUI/res/values-sk/strings.xml
+++ b/packages/SystemUI/res/values-sk/strings.xml
@@ -201,16 +201,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMATICKY"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Tu sa zobrazujú upozornenia"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Môžete ich kedykoľvek zobraziť tak, že posuniete prstom nadol.\nAk posuniete prstom nadol ešte raz, zobrazia sa ovládacie prvky systému."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Sieť môže byť monitorovaná"</string>
+    <string name="done_button" msgid="1759387181766603361">"Hotovo"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Monitorovanie siete"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Toto zariadenie spravuje: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nVáš správca môže monitorovať vašu aktivitu v sieti vrátane e-mailov, aplikácií a zabezpečených webových stránok.\n\nAk chcete získať viac informácií, obráťte sa na svojho správcu."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Tretia strana môže monitorovať vašu aktivitu\nv sieti vrátane e-mailov, aplikácií a zabezpečených webových stránok.\n\nUmožňuje to dôveryhodné poverenie nainštalované vo vašom zariadení."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Skontrolovať dôveryhodné poverenia"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml
index c2d6041..b19e6e0 100644
--- a/packages/SystemUI/res/values-sl/strings.xml
+++ b/packages/SystemUI/res/values-sl/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"SAMODEJNO"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Obvestila so prikazana tukaj"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Do njih lahko kadar koli dostopate tako, da povlečete navzdol.\nZa prikaz sistemskih kontrolnikov znova povlecite navzdol."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Omrežje je lahko nadzorovano"</string>
+    <string name="done_button" msgid="1759387181766603361">"Dokončano"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Nadzor omrežja"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"To napravo upravlja: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nSkrbnik lahko nadzoruje vašo omrežno dejavnost, vključno z e-pošto, aplikacijami in varnimi spletnimi mesti.\n\nZa več informacij se obrnite na skrbnika."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Vašo omrežno dejavnost, vključno z e-pošto, aplikacijami\nin varnimi spletnimi mesti, lahko nadzira tretja oseba.\n\nTo omogoča zaupanja vredna poverilnica, nameščena v vaši napravi."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Preveri zaupanja vredne poverilnice"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml
index 20820c5..216dc0a 100644
--- a/packages/SystemUI/res/values-sr/strings.xml
+++ b/packages/SystemUI/res/values-sr/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АУТОМАТСКА"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Обавештења се појављују овде"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Приступите им у било ком тренутку листањем надоле.\nПоново листајте надоле да би се приказале системске контроле."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Мрежа се можда надгледа"</string>
+    <string name="done_button" msgid="1759387181766603361">"Готово"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Надгледање мреже"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Овим уређајем управља: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nАдминистратор може да надгледа активности на мрежи, укључујући поруке е-поште, апликације и безбедне веб-сајтове.\n\nЗа више информација контактирајте администратора."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Трећа страна може да надгледа активности\nна мрежи, укључујући поруке е-поште, апликације и безбедне веб-сајтове.\n\nТо је могуће захваљујући поузданом акредитиву инсталираном на уређају."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Провери поуздане акредитиве"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml
index f213c23..3f2ac75 100644
--- a/packages/SystemUI/res/values-sw/strings.xml
+++ b/packages/SystemUI/res/values-sw/strings.xml
@@ -197,16 +197,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"KIOTOMATIKI"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Arifa zitaonekana hapa"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Zifikie wakati wowote kwa kutelezesha chini.\nTelezesha chini tena kupata vidhibiti vya mfumo."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Mtandao unaweza kufuatiliwa"</string>
+    <string name="done_button" msgid="1759387181766603361">"Imekamilika"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Ufuatiliaji wa Mtandao"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Kifaa hiki kinasimamiwa na: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nMsimamizi wako anaweza kufuatilia shughuli za mtandao wako, ikiwa ni pamoja na barua pepe, programu, na tovuti salama.\n\nKwa maelezo zaidi, wasiliana na msimamizi wako."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Mtu mwingine anaweza kufuatilia shughuli za mtandao wako\n, ikiwa ni pamoja na barua pepe, programu, na tovuti salama.\n\nKitambulisho cha kuaminika kilichosakinishwa kwenye kifaa chako kinafanikisha hili."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Angalia kitambulisho cha kuaminika"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml
index 4a1eb34..d1f4660 100644
--- a/packages/SystemUI/res/values-th/strings.xml
+++ b/packages/SystemUI/res/values-th/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"อัตโนมัติ"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"การแจ้งเตือนจะแสดงขึ้นที่นี่"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"เข้าถึงได้ทุกเมื่อด้วยการกวาดนิ้วลง\nกวาดนิ้วลงอีกครั้งสำหรับการควบคุมระบบ"</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"เครือข่ายอาจได้รับการตรวจสอบ"</string>
+    <string name="done_button" msgid="1759387181766603361">"เสร็จสิ้น"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"การตรวจสอบเครือข่าย"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"อุปกรณ์นี้ได้รับการจัดการโดย: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>\n\nผู้ดูแลระบบของคุณสามารถตรวจสอบกิจกรรมในเครือข่ายของคุณ ซึ่งรวมถึงอีเมล แอป และเว็บไซต์ที่มีการรักษาความปลอดภัย\n\nสำหรับข้อมูลเพิ่มเติม โปรดติดต่อผู้ดูแลระบบของคุณ"</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"บุคคลที่สามสามารถตรวจสอบกิจกรรมในเครือข่าย\nของคุณ ซึ่งรวมถึงอีเมล แอป และเว็บไซต์ที่มีการรักษาความปลอดภัย\n\nการดำเนินการนี้เกิดขึ้นได้ด้วยข้อมูลรับรองที่เชื่อถือได้ที่ติดตั้งอยู่ในอุปกรณ์ของคุณ"</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"ตรวจสอบข้อมูลรับรองที่เชื่อถือได้"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml
index c142d3a..99a4815 100644
--- a/packages/SystemUI/res/values-tl/strings.xml
+++ b/packages/SystemUI/res/values-tl/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Dito lumalabas ang mga notification"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"I-access ang mga ito anumang oras sa pamamagitan ng pag-swipe pababa.\nMuling mag-swipe pababa para sa mga kontrol ng system."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Maaaring sinusubaybayan ang network"</string>
+    <string name="done_button" msgid="1759387181766603361">"Tapos na"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Pagsubaybay sa Network"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Ang device na ito ay pinamamahalaan ng: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nMay kakayahan ang iyong administrator na subaybayan ang gawain ng iyong network, kasama ang mga email, apps, at secure na mga website.\n\nPara sa higit pang impormasyon, makipag-ugnay sa iyong administrator."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"May kakayahan ang third party na subaybayan ang gawain ng iyong\nnetwork, kasama ang mga email, apps, at secure na mga website.\n\nGinagawa itong posible ng pinagkakatiwalaang kredensyal na naka-install sa iyong device."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Suriin ang mga pinagkakatiwalaang kredensyal"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml
index ec1b515..9ac21e9 100644
--- a/packages/SystemUI/res/values-tr/strings.xml
+++ b/packages/SystemUI/res/values-tr/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"OTOMATİK"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Bildirimler burada görünür"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Aşağıya hızlıca kaydırarak bunlara istediğiniz zaman erişebilirsiniz.\nSistem denetimleri için tekrar hızlıca aşağı kaydırın."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Ağ izlenebilir"</string>
+    <string name="done_button" msgid="1759387181766603361">"Bitti"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Ağ İzleme"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Bu cihazı yöneten alan adı: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nE-postalarınız, uygulamalarınız ve güvenli web siteleriniz dahil olmak üzere ağ etkinlikleriniz yöneticiniz tarafından izlenebilir.\n\nDaha fazla bilgi için yöneticinizle görüşün."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"E-postalarınız, uygulamalarınız ve güvenli web siteleriniz\ndahil olmak üzere ağ etkinliğiniz üçüncü bir tarafça izlenebilir.\n\nCihazınızda yüklü güvenilir bir kimlik bilgisi bunu mümkün kılmaktadır."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Güvenilen kimlik bilgilerini kontrol et"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml
index 9391fdd..54897bb 100644
--- a/packages/SystemUI/res/values-vi/strings.xml
+++ b/packages/SystemUI/res/values-vi/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"TỰ ĐỘNG"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Thông báo xuất hiện tại đây"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Truy cập vào chúng bất kỳ lúc nào bằng cách vuốt xuống.\nVuốt lại xuống để hiển thị các điều khiển hệ thống."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Mạng có thể được giám sát"</string>
+    <string name="done_button" msgid="1759387181766603361">"Xong"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Giám sát mạng"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Thiết bị này được quản lý bởi: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nQuản trị viên của bạn có thể giám sát hoạt động trên mạng của bạn, bao gồm email, ứng dụng và trang web bảo mật.\n\nĐể biết thêm thông tin, hãy liên hệ với quản trị viên của bạn."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Bên thứ ba có thể giám sát hoạt động trên mạng\ncủa bạn, bao gồm email, ứng dụng và trang web bảo mật.\n\nMột bằng chứng xác thực tin cậy được cài đặt trên thiết bị của bạn có thể dẫn đến khả năng này."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Kiểm tra bằng chứng xác thực tin cậy"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml
index dfeb88a..c9710cc 100644
--- a/packages/SystemUI/res/values-zh-rCN/strings.xml
+++ b/packages/SystemUI/res/values-zh-rCN/strings.xml
@@ -201,16 +201,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"自动"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"通知会显示在这里"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"向下滑动可随时查看通知。\n再次向下滑动可使用系统控制功能。"</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"网络可能会受到监控"</string>
+    <string name="done_button" msgid="1759387181766603361">"完成"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"网络监控"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"此设备由以下企业域管理:<xliff:g id="MANAGING_DOMAIN">%s</xliff:g>。\n\n您的管理员可以监控您的网络活动,包括收发电子邮件、使用应用和浏览安全网站。\n\n如要了解详情,请与您的管理员联系。"</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"第三方可以监控您的网络活动,包括\n收发电子邮件、使用应用和浏览安全网站。\n\n如果您在设备上安装受信任的凭据,就可能出现这种情况。"</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"查看受信任的凭据"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index 0801d3a..1e77635 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -201,16 +201,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"自動"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"通知會在這裡顯示"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"向下快速滑動可隨時存取通知。\n再次向下快速滑動則可使用系統控制介面。"</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"網絡可能會受到監控"</string>
+    <string name="done_button" msgid="1759387181766603361">"完成"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"網絡監控"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"這部裝置由下列網域管理:<xliff:g id="MANAGING_DOMAIN">%s</xliff:g>。\n\n您的管理員可以監控您的網絡活動,包括收發電郵、使用應用程式及瀏覽安全網站。\n\n詳情請與您的管理員聯絡。"</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"第三方可以監察您的網絡活動,\n包括收發電郵、使用應用程式及瀏覽安全網站。\n\n當裝置安裝了信任的憑證,便可能會出現這種情況。"</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"檢查信任的憑證"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml
index e04483e..e10c6d8 100644
--- a/packages/SystemUI/res/values-zh-rTW/strings.xml
+++ b/packages/SystemUI/res/values-zh-rTW/strings.xml
@@ -201,16 +201,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"自動"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"系統會在這裡顯示通知"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"向下滑動即可隨時存取通知。\n再次向下滑動即可使用系統控制項。"</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"網路可能會受到監控"</string>
+    <string name="done_button" msgid="1759387181766603361">"完成"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"網路監控"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"這個裝置由下列網域管理:<xliff:g id="MANAGING_DOMAIN">%s</xliff:g>。\n\n您的管理員可以監控您的網路活動,包括收發電子郵件、使用應用程式及瀏覽安全網站。\n\n如需詳細資訊,請與您的管理員聯絡。"</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"第三方可以監控您的網路活動,\n包括收發電子郵件、使用應用程式及瀏覽安全網站。\n\n如果您在裝置上安裝信任的憑證,就會造成這種情況。"</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"檢查信任的憑證"</string>
 </resources>
diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml
index 55097b1..296e65e 100644
--- a/packages/SystemUI/res/values-zu/strings.xml
+++ b/packages/SystemUI/res/values-zu/strings.xml
@@ -199,16 +199,10 @@
     <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"OKUZENZAKALELAYO"</string>
     <string name="status_bar_help_title" msgid="1199237744086469217">"Izaziso zivela lapha"</string>
     <string name="status_bar_help_text" msgid="7874607155052076323">"Kufinyelele noma kunini ngokuswayiphela phansi.\nSwayiphela phansi futhi ngezilawuli zesistimu."</string>
-    <!-- no translation found for ssl_ca_cert_warning (5848402127455021714) -->
-    <skip />
-    <!-- no translation found for done_button (1759387181766603361) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_dialog_title (1273796967092027291) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_info_message (5430320539555358452) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_warning_message (2033091656129963669) -->
-    <skip />
-    <!-- no translation found for ssl_ca_cert_settings_button (7946956977377166709) -->
-    <skip />
+    <string name="ssl_ca_cert_warning" msgid="5848402127455021714">"Inethiwekhi ingase inganyelwe"</string>
+    <string name="done_button" msgid="1759387181766603361">"Kwenziwe"</string>
+    <string name="ssl_ca_cert_dialog_title" msgid="1273796967092027291">"Ukwenganyelwa kwenethiwekhi"</string>
+    <string name="ssl_ca_cert_info_message" msgid="5430320539555358452">"Le divayisi iphethwe ngu-: <xliff:g id="MANAGING_DOMAIN">%s</xliff:g>.\n\nUmphathi wakho uyakwazi ukungamela umsebenzi wenethiwekhi yakho, okufaka phakathi ama-imeyili, izinhlelo zokusebenza, namawebhusayithi aphephile.\n\nUkuze uthole olunye ulwazi xhumana nomphathi wakho."</string>
+    <string name="ssl_ca_cert_warning_message" msgid="2033091656129963669">"Inkampani  yangaphandle ingakwazi ukungamela umsebenzi wenethiwekhi yakho\n, okufaka phakathi ama-imeyili, izinhlelo zokusebenza namawebhusayithi aphephile.\n\nIsiqinisekiso esethenjwayo kudivayisi yakho senza lokhu kwenzeke."</string>
+    <string name="ssl_ca_cert_settings_button" msgid="7946956977377166709">"Hlola ukuqinisekisa okwethenjwayo"</string>
 </resources>
diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml
index 8fceaeb..f58872a 100644
--- a/packages/SystemUI/res/values/colors.xml
+++ b/packages/SystemUI/res/values/colors.xml
@@ -35,7 +35,7 @@
     <drawable name="notification_header_bg">#FF000000</drawable>
     <color name="notification_panel_scrim_color">#B0000000</color>
 
-    <color name="batterymeter_frame_color">#FF404040</color>
-    <color name="batterymeter_charge_color">#FF797979</color>
+    <color name="batterymeter_frame_color">#33FFFFFF</color>
+    <color name="batterymeter_charge_color">#7FFFFFFF</color>
     <color name="status_bar_clock_color">#FFFFFFFF</color>
 </resources>
diff --git a/packages/SystemUI/res/values/ids.xml b/packages/SystemUI/res/values/ids.xml
deleted file mode 100644
index d876a95..0000000
--- a/packages/SystemUI/res/values/ids.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2012 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-
-<resources>
-    <item type="id" name="status_bar_cling_stub" />
-</resources>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 8e88610..3ffa6f4 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -493,10 +493,6 @@
     <!-- QuickSettings: Brightness dialog auto brightness button [CHAR LIMIT=NONE] -->
     <string name="quick_settings_brightness_dialog_auto_brightness_label">AUTO</string>
 
-    <!-- Title of help text shown when the notification panel is pulled down for the very first time. [CHAR LIMIT=NONE] -->
-    <string name="status_bar_help_title">Notifications appear here</string>
-    <!-- Body of help text shown when the notification panel is pulled down for the very first time. [CHAR LIMIT=NONE] -->
-    <string name="status_bar_help_text">Access them anytime by swiping down.\nSwipe down again for system controls.</string>
 
     <!-- Glyph to be overlaid atop the battery when the level is extremely low. Do not translate. -->
     <string name="battery_meter_very_low_overlay_symbol">!</string>
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index cd78041..134f228 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -159,33 +159,4 @@
         <item name="android:textSize">14dp</item>
     </style>
     
-    <style name="ClingButton">
-        <item name="android:layout_width">wrap_content</item>
-        <item name="android:layout_height">wrap_content</item>
-        <item name="android:paddingTop">10dp</item>
-        <item name="android:paddingBottom">15dp</item>
-        <item name="android:paddingLeft">35dp</item>
-        <item name="android:paddingRight">35dp</item>
-        <item name="android:textStyle">bold</item>
-        <item name="android:background">@drawable/cling_button_bg</item>
-    </style>
-    <style name="ClingTitleText">
-        <item name="android:layout_width">wrap_content</item>
-        <item name="android:layout_height">wrap_content</item>
-        <item name="android:layout_marginBottom">5dp</item>
-        <item name="android:textSize">23sp</item>
-        <item name="android:textColor">#49C0EC</item>
-        <item name="android:shadowColor">#000000</item>
-        <item name="android:shadowDy">2</item>
-        <item name="android:shadowRadius">2.0</item>
-    </style>
-    <style name="ClingText">
-        <item name="android:textSize">15sp</item>
-        <item name="android:textColor">#FFFFFF</item>
-        <item name="android:shadowColor">#000000</item>
-        <item name="android:shadowDy">2</item>
-        <item name="android:shadowRadius">2.0</item>
-        <item name="android:lineSpacingMultiplier">1.1</item>
-    </style>
-
 </resources>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index 24f7d83..e32d7f2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -1102,11 +1102,7 @@
         return km.inKeyguardRestrictedInputMode();
     }
 
-    public void suspendAutohide() {
-        // hook for subclasses
-    }
-
-    public void resumeAutohide() {
+    public void setInteracting(boolean interacting) {
         // hook for subclasses
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/DelegateViewHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/DelegateViewHelper.java
index 9648b11..eef4f44 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/DelegateViewHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/DelegateViewHelper.java
@@ -86,9 +86,9 @@
         }
 
         if (action == MotionEvent.ACTION_DOWN) {
-            mBar.suspendAutohide();
+            mBar.setInteracting(true);
         } else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) {
-            mBar.resumeAutohide();
+            mBar.setInteracting(false);
         }
 
         mDelegateView.getLocationOnScreen(mTempPoint);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BarTransitions.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BarTransitions.java
index 318ec51..6302244 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/BarTransitions.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/BarTransitions.java
@@ -64,17 +64,6 @@
         return mMode;
     }
 
-    public void setTransparent(Drawable transparent) {
-        mTransparent = transparent;
-        if (mMode == MODE_TRANSPARENT) {
-            transitionTo(MODE_TRANSPARENT);
-        }
-    }
-
-    public void transitionTo(int mode) {
-        transitionTo(mode, false);
-    }
-
     public void transitionTo(int mode, boolean animate) {
         if (mMode == mode) return;
         int oldMode = mMode;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
index 62f8596..850f94d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
@@ -112,9 +112,11 @@
     }
 
     private final class NavigationBarTransitions extends BarTransitions {
+        private static final boolean ENABLE_GRADIENT = false;  // until we can smooth transition
 
         private final Drawable mTransparentBottom;
         private final Drawable mTransparentRight;
+        private final int mTransparentColor;
 
         public NavigationBarTransitions(Context context) {
             super(context, NavigationBarView.this);
@@ -125,13 +127,21 @@
             };
             mTransparentBottom = new GradientDrawable(Orientation.BOTTOM_TOP, gradientColors);
             mTransparentRight = new GradientDrawable(Orientation.RIGHT_LEFT, gradientColors);
+            mTransparentColor = res.getColor(R.color.status_bar_background_transparent);
         }
 
         public void setVertical(boolean isVertical) {
+            if (!ENABLE_GRADIENT) return;
             mTransparent = isVertical ? mTransparentRight : mTransparentBottom;
         }
 
         @Override
+        protected Integer getBackgroundColor(int mode) {
+            if (!ENABLE_GRADIENT && mode == MODE_TRANSPARENT) return mTransparentColor;
+            return super.getBackgroundColor(mode);
+        }
+
+        @Override
         protected void onTransition(int oldMode, int newMode, boolean animate) {
             super.onTransition(oldMode, newMode, animate);
             final float alpha = newMode == MODE_OPAQUE ? KeyButtonView.DEFAULT_QUIESCENT_ALPHA : 1f;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index faf0368..870202a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -16,6 +16,8 @@
 
 package com.android.systemui.statusbar.phone;
 
+import static android.app.StatusBarManager.NAVIGATION_HINT_BACK_ALT;
+import static android.app.StatusBarManager.WINDOW_STATE_SHOWING;
 import static android.app.StatusBarManager.windowStateToString;
 import static com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE;
 import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
@@ -35,7 +37,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.SharedPreferences;
 import android.content.res.Resources;
 import android.database.ContentObserver;
 import android.graphics.Canvas;
@@ -95,7 +96,6 @@
 import com.android.systemui.statusbar.policy.NetworkController;
 import com.android.systemui.statusbar.policy.NotificationRowLayout;
 import com.android.systemui.statusbar.policy.OnSizeChangedListener;
-import com.android.systemui.statusbar.policy.Prefs;
 import com.android.systemui.statusbar.policy.RotationLockController;
 
 import java.io.FileDescriptor;
@@ -109,11 +109,8 @@
     public static final boolean DUMPTRUCK = true; // extra dumpsys info
     public static final boolean DEBUG_GESTURES = false;
 
-    public static final boolean DEBUG_CLINGS = false;
     public static final boolean DEBUG_WINDOW_STATE = true;
 
-    public static final boolean ENABLE_NOTIFICATION_PANEL_CLING = false;
-
     public static final boolean SETTINGS_DRAG_SHORTCUT = true;
 
     // additional instrumentation for testing purposes; intended to be left on during development
@@ -170,7 +167,7 @@
 
     StatusBarWindowView mStatusBarWindow;
     PhoneStatusBarView mStatusBarView;
-    private int mStatusBarWindowState;
+    private int mStatusBarWindowState = WINDOW_STATE_SHOWING;
 
     int mPixelFormat;
     Object mQueueLock = new Object();
@@ -234,7 +231,7 @@
 
     // on-screen navigation buttons
     private NavigationBarView mNavigationBarView = null;
-    private int mNavigationBarWindowState;
+    private int mNavigationBarWindowState = WINDOW_STATE_SHOWING;
 
     // the tracker view
     int mTrackingPosition; // the position of the top of the tracking view.
@@ -249,11 +246,6 @@
     boolean mTracking;
     VelocityTracker mVelocityTracker;
 
-    // help screen
-    private boolean mClingShown;
-    private ViewGroup mCling;
-    private boolean mSuppressStatusBarDrags; // while a cling is up, briefly deaden the bar to give things time to settle
-
     int[] mAbsPos = new int[2];
     Runnable mPostCollapseCleanup = null;
 
@@ -312,7 +304,10 @@
         }
     };
 
+    private boolean mInteracting;
     private boolean mAutohideSuspended;
+    private int mStatusBarMode;
+    private int mNavigationBarMode;
 
     private final Runnable mAutohide = new Runnable() {
         @Override
@@ -610,13 +605,6 @@
             }
         }
 
-        mClingShown = ! (DEBUG_CLINGS
-            || !Prefs.read(mContext).getBoolean(Prefs.SHOWN_QUICK_SETTINGS_HELP, false));
-
-        if (!ENABLE_NOTIFICATION_PANEL_CLING || ActivityManager.isRunningInTestHarness()) {
-            mClingShown = true;
-        }
-
 //        final ImageView wimaxRSSI =
 //                (ImageView)sb.findViewById(R.id.wimax_signal);
 //        if (wimaxRSSI != null) {
@@ -1394,7 +1382,7 @@
 
         visibilityChanged(true);
 
-        suspendAutohide();
+        setInteracting(true);
     }
 
     public void animateCollapsePanels() {
@@ -1678,8 +1666,7 @@
             mPostCollapseCleanup = null;
         }
 
-        // Reschedule suspended auto-hide if necessary
-        resumeAutohide();
+        setInteracting(false);
     }
 
     /**
@@ -1729,63 +1716,6 @@
         }
     }
 
-    public boolean isClinging() {
-        return mCling != null && mCling.getVisibility() == View.VISIBLE;
-    }
-
-    public void hideCling() {
-        if (isClinging()) {
-            mCling.animate().alpha(0f).setDuration(250).start();
-            mCling.setVisibility(View.GONE);
-            mSuppressStatusBarDrags = false;
-        }
-    }
-
-    public void showCling() {
-        // lazily inflate this to accommodate orientation change
-        final ViewStub stub = (ViewStub) mStatusBarWindow.findViewById(R.id.status_bar_cling_stub);
-        if (stub == null) {
-            mClingShown = true;
-            return; // no clings on this device
-        }
-
-        mSuppressStatusBarDrags = true;
-
-        mHandler.postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                mCling = (ViewGroup) stub.inflate();
-
-                mCling.setOnTouchListener(new View.OnTouchListener() {
-                    @Override
-                    public boolean onTouch(View v, MotionEvent event) {
-                        return true; // e eats everything
-                    }});
-                mCling.findViewById(R.id.ok).setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        hideCling();
-                    }});
-
-                mCling.setAlpha(0f);
-                mCling.setVisibility(View.VISIBLE);
-                mCling.animate().alpha(1f);
-
-                mClingShown = true;
-                SharedPreferences.Editor editor = Prefs.edit(mContext);
-                editor.putBoolean(Prefs.SHOWN_QUICK_SETTINGS_HELP, true);
-                editor.apply();
-
-                makeExpandedVisible(); // enforce visibility in case the shade is still animating closed
-                animateExpandNotificationsPanel();
-
-                mSuppressStatusBarDrags = false;
-            }
-        }, 500);
-
-        animateExpandNotificationsPanel();
-    }
-
     public boolean interceptTouchEvent(MotionEvent event) {
         if (DEBUG_GESTURES) {
             if (event.getActionMasked() != MotionEvent.ACTION_MOVE) {
@@ -1811,22 +1741,7 @@
             mGestureRec.add(event);
         }
 
-        // Cling (first-run help) handling.
-        // The cling is supposed to show the first time you drag, or even tap, the status bar.
-        // It should show the notification panel, then fade in after half a second, giving you
-        // an explanation of what just happened, as well as teach you how to access quick
-        // settings (another drag). The user can dismiss the cling by clicking OK or by
-        // dragging quick settings into view.
-        final int act = event.getActionMasked();
-        if (mSuppressStatusBarDrags) {
-            return true;
-        } else if (act == MotionEvent.ACTION_UP && !mClingShown) {
-            showCling();
-        } else {
-            hideCling();
-        }
-
-        suspendAutohide();
+        setInteracting(true);
         return false;
     }
 
@@ -1843,11 +1758,12 @@
         if (mNavigationBarView != null) {
             mNavigationBarView.setNavigationIconHints(hints);
         }
+        checkBarModes();
     }
 
     @Override // CommandQueue
     public void setWindowState(int window, int state) {
-        boolean showing = state == StatusBarManager.WINDOW_STATE_SHOWING;
+        boolean showing = state == WINDOW_STATE_SHOWING;
         if (mStatusBarWindow != null
                 && window == StatusBarManager.WINDOW_STATUS_BAR
                 && mStatusBarWindowState != state) {
@@ -1898,17 +1814,28 @@
             }
 
             // update status bar mode
-            int sbMode = updateBarMode(oldVal, newVal, mStatusBarView.getBarTransitions(),
-                    View.STATUS_BAR_TRANSIENT, View.SYSTEM_UI_FLAG_TRANSPARENT_STATUS,
-                    mStatusBarWindowState);
+            final int sbMode = computeBarMode(oldVal, newVal, mStatusBarView.getBarTransitions(),
+                    View.STATUS_BAR_TRANSIENT, View.SYSTEM_UI_FLAG_TRANSPARENT_STATUS);
 
             // update navigation bar mode
-            int nbMode = mNavigationBarView == null ? -1 : updateBarMode(
+            final int nbMode = mNavigationBarView == null ? -1 : computeBarMode(
                     oldVal, newVal, mNavigationBarView.getBarTransitions(),
-                    View.NAVIGATION_BAR_TRANSIENT, View.SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION,
-                    mNavigationBarWindowState);
-
-            if (sbMode != -1 || nbMode != -1) {
+                    View.NAVIGATION_BAR_TRANSIENT, View.SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION);
+            final boolean sbModeChanged = sbMode != -1;
+            final boolean nbModeChanged = nbMode != -1;
+            boolean checkBarModes = false;
+            if (sbModeChanged && sbMode != mStatusBarMode) {
+                mStatusBarMode = sbMode;
+                checkBarModes = true;
+            }
+            if (nbModeChanged && nbMode != mNavigationBarMode) {
+                mNavigationBarMode = nbMode;
+                checkBarModes = true;
+            }
+            if (checkBarModes) {
+                checkBarModes();
+            }
+            if (sbModeChanged || nbModeChanged) {
                 // update transient bar autohide
                 if (sbMode == MODE_SEMI_TRANSPARENT || nbMode == MODE_SEMI_TRANSPARENT) {
                     scheduleAutohide();
@@ -1935,15 +1862,13 @@
         return mStatusBarView.getBarTransitions().getMode();
     }
 
-    private int updateBarMode(int oldVis, int newVis, BarTransitions transitions,
-            int transientFlag, int transparentFlag, int windowState) {
+    private int computeBarMode(int oldVis, int newVis, BarTransitions transitions,
+            int transientFlag, int transparentFlag) {
         final int oldMode = barMode(oldVis, transientFlag, transparentFlag);
         final int newMode = barMode(newVis, transientFlag, transparentFlag);
         if (oldMode == newMode) {
             return -1; // no mode change
         }
-        final boolean animate = windowState == StatusBarManager.WINDOW_STATE_SHOWING;
-        transitions.transitionTo(newMode, animate);
         return newMode;
     }
 
@@ -1953,35 +1878,49 @@
                 : MODE_OPAQUE;
     }
 
-    private final Runnable mResumeSemiTransparent = new Runnable() {
+    private void checkBarModes() {
+        checkBarMode(mStatusBarMode, mStatusBarWindowState, mStatusBarView.getBarTransitions());
+        if (mNavigationBarView != null) {
+            checkBarMode(mNavigationBarMode,
+                    mNavigationBarWindowState, mNavigationBarView.getBarTransitions());
+        }
+    }
+
+    private void checkBarMode(int mode, int windowState, BarTransitions transitions) {
+        final boolean imeVisible = (mNavigationIconHints & NAVIGATION_HINT_BACK_ALT) != 0;
+        final int finalMode = imeVisible || mInteracting ? MODE_OPAQUE : mode;
+        final boolean animate = windowState == WINDOW_STATE_SHOWING;
+        transitions.transitionTo(finalMode, animate);
+    }
+
+    private final Runnable mCheckBarModes = new Runnable() {
         @Override
         public void run() {
-            if ((mSystemUiVisibility & STATUS_OR_NAV_TRANSIENT) != 0) {
-                animateTransitionTo(BarTransitions.MODE_SEMI_TRANSPARENT);
-            }
+            checkBarModes();
         }};
 
     @Override
-    public void resumeAutohide() {
+    public void setInteracting(boolean interacting) {
+        mInteracting = interacting;
+        if (mInteracting) {
+            suspendAutohide();
+        } else {
+            resumeSuspendedAutohide();
+        }
+        checkBarModes();
+    }
+
+    private void resumeSuspendedAutohide() {
         if (mAutohideSuspended) {
             scheduleAutohide();
-            mHandler.postDelayed(mResumeSemiTransparent, 500); // longer than home -> launcher
+            mHandler.postDelayed(mCheckBarModes, 500); // longer than home -> launcher
         }
     }
 
-    private void animateTransitionTo(int newMode) {
-        mStatusBarView.getBarTransitions().transitionTo(newMode, true /*animate*/);
-        if (mNavigationBarView != null) {
-            mNavigationBarView.getBarTransitions().transitionTo(newMode, true /*animate*/);
-        }
-    }
-
-    @Override
-    public void suspendAutohide() {
+    private void suspendAutohide() {
         mHandler.removeCallbacks(mAutohide);
-        mHandler.removeCallbacks(mResumeSemiTransparent);
+        mHandler.removeCallbacks(mCheckBarModes);
         mAutohideSuspended = (mSystemUiVisibility & STATUS_OR_NAV_TRANSIENT) != 0;
-        animateTransitionTo(BarTransitions.MODE_OPAQUE);
     }
 
     private void cancelAutohide() {
@@ -2087,8 +2026,8 @@
             || ((vis & InputMethodService.IME_VISIBLE) != 0);
 
         mCommandQueue.setNavigationIconHints(
-                altBack ? (mNavigationIconHints | StatusBarManager.NAVIGATION_HINT_BACK_ALT)
-                        : (mNavigationIconHints & ~StatusBarManager.NAVIGATION_HINT_BACK_ALT));
+                altBack ? (mNavigationIconHints | NAVIGATION_HINT_BACK_ALT)
+                        : (mNavigationIconHints & ~NAVIGATION_HINT_BACK_ALT));
         if (mQS != null) mQS.setImeWindowStatus(vis > 0);
     }
 
@@ -2186,12 +2125,17 @@
                     + " scroll " + mScrollView.getScrollX() + "," + mScrollView.getScrollY());
         }
 
+        pw.print("  mInteracting="); pw.println(mInteracting);
         pw.print("  mStatusBarWindowState=");
         pw.println(windowStateToString(mStatusBarWindowState));
+        pw.print("  mStatusBarMode=");
+        pw.println(BarTransitions.modeToString(mStatusBarMode));
         dumpBarTransitions(pw, "mStatusBarView", mStatusBarView.getBarTransitions());
         if (mNavigationBarView != null) {
             pw.print("  mNavigationBarWindowState=");
             pw.println(windowStateToString(mNavigationBarWindowState));
+            pw.print("  mNavigationBarMode=");
+            pw.println(BarTransitions.modeToString(mNavigationBarMode));
             dumpBarTransitions(pw, "mNavigationBarView", mNavigationBarView.getBarTransitions());
         }
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
index 98e480a..b9e3059 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
@@ -423,7 +423,7 @@
         if (string == null) return null;
         final int length = string.length();
         if (string.endsWith(".")) {
-            string.substring(0, length - 1);
+            return string.substring(0, length - 1);
         }
         return string;
     }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Prefs.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Prefs.java
index 73979a6..f339401 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Prefs.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Prefs.java
@@ -22,8 +22,6 @@
 public class Prefs {
     private static final String SHARED_PREFS_NAME = "status_bar";
 
-    public static final String SHOWN_QUICK_SETTINGS_HELP = "shown_quick_settings_help";
-
     public static SharedPreferences read(Context context) {
         return context.getSharedPreferences(Prefs.SHARED_PREFS_NAME, Context.MODE_PRIVATE);
     }
diff --git a/policy/src/com/android/internal/policy/impl/BarController.java b/policy/src/com/android/internal/policy/impl/BarController.java
index 01c53fe..41b2fd1 100644
--- a/policy/src/com/android/internal/policy/impl/BarController.java
+++ b/policy/src/com/android/internal/policy/impl/BarController.java
@@ -51,7 +51,7 @@
     private IStatusBarService mStatusBarService;
 
     private WindowState mWin;
-    private int mState;
+    private int mState = StatusBarManager.WINDOW_STATE_SHOWING;
     private int mTransientBarState;
     private boolean mPendingShow;
     private long mLastTransparent;
@@ -110,7 +110,7 @@
         final boolean oldAnim = mWin.isAnimatingLw();
         final boolean rt = show ? mWin.showLw(true) : mWin.hideLw(true);
         final int state = computeState(oldVis, oldAnim, mWin.isVisibleLw(), mWin.isAnimatingLw());
-        if (state > -1) {
+        if (state > -1 && mWin.hasDrawnLw()) {
             updateState(state);
         }
         return rt;
@@ -146,7 +146,7 @@
     }
 
     public boolean checkHiddenLw() {
-        if (mWin != null) {
+        if (mWin != null && mWin.hasDrawnLw()) {
             if (!mWin.isVisibleLw() && !mWin.isAnimatingLw()) {
                 updateState(StatusBarManager.WINDOW_STATE_HIDDEN);
             }
@@ -230,9 +230,9 @@
     public void dump(PrintWriter pw, String prefix) {
         if (mWin != null) {
             pw.print(prefix); pw.println(mTag);
-            pw.print("  "); pw.print("mState"); pw.print('=');
+            pw.print(prefix); pw.print("  "); pw.print("mState"); pw.print('=');
             pw.println(StatusBarManager.windowStateToString(mState));
-            pw.print("  "); pw.print("mTransientBar"); pw.print('=');
+            pw.print(prefix); pw.print("  "); pw.print("mTransientBar"); pw.print('=');
             pw.println(transientBarStateToString(mTransientBarState));
         }
     }
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index 8fc6115..c58ed6f 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -2692,7 +2692,7 @@
             final int sysui = mLastSystemUiFlags;
             boolean navVisible = (sysui & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0;
             boolean navTransparent = (sysui & View.SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION) != 0;
-            boolean transientAllowed = (sysui & View.SYSTEM_UI_FLAG_ALLOW_TRANSIENT) != 0;
+            boolean transientAllowed = (sysui & View.SYSTEM_UI_FLAG_IMMERSIVE) != 0;
             navTransparent &= !transientAllowed;  // transient trumps transparent
 
             // When the navigation bar isn't visible, we put up a fake
@@ -2986,7 +2986,8 @@
             pf.left = df.left = of.left = cf.left = vf.left = mDockLeft;
             pf.top = df.top = of.top = cf.top = vf.top = mDockTop;
             pf.right = df.right = of.right = cf.right = vf.right = mDockRight;
-            pf.bottom = df.bottom = of.bottom = cf.bottom = vf.bottom = mDockBottom;
+            // IM dock windows always go above the nav bar.
+            pf.bottom = df.bottom = of.bottom = cf.bottom = vf.bottom = mStableBottom;
             // IM dock windows always go to the bottom of the screen.
             attrs.gravity = Gravity.BOTTOM;
             mDockLayer = win.getSurfaceLayer();
@@ -5054,13 +5055,13 @@
         if (statusBarHasFocus) {
             int flags = View.SYSTEM_UI_FLAG_FULLSCREEN
                     | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
-                    | View.SYSTEM_UI_FLAG_ALLOW_TRANSIENT;
+                    | View.SYSTEM_UI_FLAG_IMMERSIVE;
             vis = (vis & ~flags) | (mLastSystemUiFlags & flags);
         }
 
         // update status bar
         boolean transientAllowed =
-                (vis & View.SYSTEM_UI_FLAG_ALLOW_TRANSIENT) != 0;
+                (vis & View.SYSTEM_UI_FLAG_IMMERSIVE) != 0;
         boolean hideStatusBarWM =
                 (mFocusedWindow.getAttrs().flags
                         & WindowManager.LayoutParams.FLAG_FULLSCREEN) != 0;
@@ -5105,7 +5106,7 @@
     private boolean isTransientNavigationAllowed(int vis) {
         return mNavigationBar != null
                 && (vis & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0
-                && (vis & View.SYSTEM_UI_FLAG_ALLOW_TRANSIENT) != 0;
+                && (vis & View.SYSTEM_UI_FLAG_IMMERSIVE) != 0;
     }
 
     // Temporary helper that allows testing immersive mode on existing apps
@@ -5133,7 +5134,7 @@
             if (sForced.contains(parseActivity(focused))) {
                 vis |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
                        View.SYSTEM_UI_FLAG_FULLSCREEN |
-                       View.SYSTEM_UI_FLAG_ALLOW_TRANSIENT;
+                       View.SYSTEM_UI_FLAG_IMMERSIVE;
             }
             return vis;
         }
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index ec6b063..9c14654 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -36,6 +36,7 @@
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.bluetooth.BluetoothTetheringDataTracker;
+import android.content.ActivityNotFoundException;
 import android.content.BroadcastReceiver;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -152,6 +153,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Random;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
 /**
@@ -424,9 +426,6 @@
 
     TelephonyManager mTelephonyManager;
 
-    // We only want one checkMobileProvisioning after booting.
-    volatile boolean mFirstProvisioningCheckStarted = false;
-
     public ConnectivityService(Context context, INetworkManagementService netd,
             INetworkStatsService statsService, INetworkPolicyManager policyManager) {
         // Currently, omitting a NetworkFactory will create one internally
@@ -656,9 +655,6 @@
         mSettingsObserver = new SettingsObserver(mHandler, EVENT_APPLY_GLOBAL_HTTP_PROXY);
         mSettingsObserver.observe(mContext);
 
-        mCaptivePortalTracker = CaptivePortalTracker.makeCaptivePortalTracker(mContext, this);
-        loadGlobalProxy();
-
         mDataConnectionStats = new DataConnectionStats(mContext);
         mDataConnectionStats.startMonitoring();
 
@@ -686,6 +682,10 @@
                 new IntentFilter(filter));
 
         mPacManager = new PacManager(mContext);
+
+        filter = new IntentFilter();
+        filter.addAction(CONNECTED_TO_PROVISIONING_NETWORK_ACTION);
+        mContext.registerReceiver(mProvisioningReceiver, filter);
     }
 
     /**
@@ -954,6 +954,46 @@
         return getNetworkInfo(mActiveDefaultNetwork, uid);
     }
 
+    /**
+     * Find the first Provisioning network.
+     *
+     * @return NetworkInfo or null if none.
+     */
+    private NetworkInfo getProvisioningNetworkInfo() {
+        enforceAccessPermission();
+
+        // Find the first Provisioning Network
+        NetworkInfo provNi = null;
+        for (NetworkInfo ni : getAllNetworkInfo()) {
+            if (ni.getDetailedState()
+                    == NetworkInfo.DetailedState.CONNECTED_TO_PROVISIONING_NETWORK) {
+                provNi = ni;
+                break;
+            }
+        }
+        if (DBG) log("getProvisioningNetworkInfo: X provNi=" + provNi);
+        return provNi;
+    }
+
+    /**
+     * Find the first Provisioning network or the ActiveDefaultNetwork
+     * if there is no Provisioning network
+     *
+     * @return NetworkInfo or null if none.
+     */
+    @Override
+    public NetworkInfo getProvisioningOrActiveNetworkInfo() {
+        enforceAccessPermission();
+
+        NetworkInfo provNi = getProvisioningNetworkInfo();
+        if (provNi == null) {
+            final int uid = Binder.getCallingUid();
+            provNi = getNetworkInfo(mActiveDefaultNetwork, uid);
+        }
+        if (DBG) log("getProvisioningOrActiveNetworkInfo: X provNi=" + provNi);
+        return provNi;
+    }
+
     public NetworkInfo getActiveNetworkInfoUnfiltered() {
         enforceAccessPermission();
         if (isNetworkTypeValid(mActiveDefaultNetwork)) {
@@ -1316,8 +1356,10 @@
                                 feature);
                     }
                     if (network.reconnect()) {
+                        if (DBG) log("startUsingNetworkFeature X: return APN_REQUEST_STARTED");
                         return PhoneConstants.APN_REQUEST_STARTED;
                     } else {
+                        if (DBG) log("startUsingNetworkFeature X: return APN_REQUEST_FAILED");
                         return PhoneConstants.APN_REQUEST_FAILED;
                     }
                 } else {
@@ -1329,9 +1371,11 @@
                             mNetRequestersPids[usedNetworkType].add(currentPid);
                         }
                     }
+                    if (DBG) log("startUsingNetworkFeature X: return -1 unsupported feature.");
                     return -1;
                 }
             }
+            if (DBG) log("startUsingNetworkFeature X: return APN_TYPE_NOT_AVAILABLE");
             return PhoneConstants.APN_TYPE_NOT_AVAILABLE;
          } finally {
             if (DBG) {
@@ -1365,11 +1409,12 @@
             }
         }
         if (found && u != null) {
+            if (VDBG) log("stopUsingNetworkFeature: X");
             // stop regardless of how many other time this proc had called start
             return stopUsingNetworkFeature(u, true);
         } else {
             // none found!
-            if (VDBG) log("stopUsingNetworkFeature - not a live request, ignoring");
+            if (VDBG) log("stopUsingNetworkFeature: X not a live request, ignoring");
             return 1;
         }
     }
@@ -1952,6 +1997,9 @@
          */
         if (mNetConfigs[prevNetType].isDefault()) {
             if (mActiveDefaultNetwork == prevNetType) {
+                if (DBG) {
+                    log("tryFailover: set mActiveDefaultNetwork=-1, prevNetType=" + prevNetType);
+                }
                 mActiveDefaultNetwork = -1;
             }
 
@@ -2146,6 +2194,9 @@
     }
 
     void systemReady() {
+        mCaptivePortalTracker = CaptivePortalTracker.makeCaptivePortalTracker(mContext, this);
+        loadGlobalProxy();
+
         synchronized(this) {
             mSystemReady = true;
             if (mInitialBroadcast != null) {
@@ -2176,10 +2227,11 @@
     };
 
     private boolean isNewNetTypePreferredOverCurrentNetType(int type) {
-        if ((type != mNetworkPreference &&
-                    mNetConfigs[mActiveDefaultNetwork].priority >
-                    mNetConfigs[type].priority) ||
-                mNetworkPreference == mActiveDefaultNetwork) return false;
+        if (((type != mNetworkPreference)
+                      && (mNetConfigs[mActiveDefaultNetwork].priority > mNetConfigs[type].priority))
+                   || (mNetworkPreference == mActiveDefaultNetwork)) {
+            return false;
+        }
         return true;
     }
 
@@ -2193,6 +2245,11 @@
         final NetworkStateTracker thisNet = mNetTrackers[newNetType];
         final String thisIface = thisNet.getLinkProperties().getInterfaceName();
 
+        if (VDBG) {
+            log("handleConnect: E newNetType=" + newNetType + " thisIface=" + thisIface
+                    + " isFailover" + isFailover);
+        }
+
         // if this is a default net and other default is running
         // kill the one not preferred
         if (mNetConfigs[newNetType].isDefault()) {
@@ -2355,6 +2412,10 @@
     private void handleConnectivityChange(int netType, boolean doReset) {
         int resetMask = doReset ? NetworkUtils.RESET_ALL_ADDRESSES : 0;
         boolean exempt = ConnectivityManager.isNetworkTypeExempt(netType);
+        if (VDBG) {
+            log("handleConnectivityChange: netType=" + netType + " doReset=" + doReset
+                    + " resetMask=" + resetMask);
+        }
 
         /*
          * If a non-default network is enabled, add the host routes that
@@ -2422,7 +2483,9 @@
         boolean resetDns = updateRoutes(newLp, curLp, mNetConfigs[netType].isDefault(), exempt);
 
         if (resetMask != 0 || resetDns) {
+            if (VDBG) log("handleConnectivityChange: resetting");
             if (curLp != null) {
+                if (VDBG) log("handleConnectivityChange: resetting curLp=" + curLp);
                 for (String iface : curLp.getAllInterfaceNames()) {
                     if (TextUtils.isEmpty(iface) == false) {
                         if (resetMask != 0) {
@@ -2459,6 +2522,7 @@
         // Update 464xlat state.
         NetworkStateTracker tracker = mNetTrackers[netType];
         if (mClat.requiresClat(netType, tracker)) {
+
             // If the connection was previously using clat, but is not using it now, stop the clat
             // daemon. Normally, this happens automatically when the connection disconnects, but if
             // the disconnect is not reported, or if the connection's LinkProperties changed for
@@ -2512,6 +2576,7 @@
 
         for (RouteInfo r : routeDiff.removed) {
             if (isLinkDefault || ! r.isDefaultRoute()) {
+                if (VDBG) log("updateRoutes: default remove route r=" + r);
                 removeRoute(curLp, r, TO_DEFAULT_TABLE);
             }
             if (isLinkDefault == false) {
@@ -2849,9 +2914,8 @@
         public void handleMessage(Message msg) {
             NetworkInfo info;
             switch (msg.what) {
-                case NetworkStateTracker.EVENT_STATE_CHANGED:
+                case NetworkStateTracker.EVENT_STATE_CHANGED: {
                     info = (NetworkInfo) msg.obj;
-                    int type = info.getType();
                     NetworkInfo.State state = info.getState();
 
                     if (VDBG || (state == NetworkInfo.State.CONNECTED) ||
@@ -2861,15 +2925,17 @@
                             state + "/" + info.getDetailedState());
                     }
 
-                    // After booting we'll check once for mobile provisioning
-                    // if we've provisioned by and connected.
-                    if (!mFirstProvisioningCheckStarted
+                    // Since mobile has the notion of a network/apn that can be used for
+                    // provisioning we need to check every time we're connected as
+                    // CaptiveProtalTracker won't detected it because DCT doesn't report it
+                    // as connected as ACTION_ANY_DATA_CONNECTION_STATE_CHANGED instead its
+                    // reported as ACTION_DATA_CONNECTION_CONNECTED_TO_PROVISIONING_APN. Which
+                    // is received by MDST and sent here as EVENT_STATE_CHANGED.
+                    if (ConnectivityManager.isNetworkTypeMobile(info.getType())
                             && (0 != Settings.Global.getInt(mContext.getContentResolver(),
                                         Settings.Global.DEVICE_PROVISIONED, 0))
                             && (state == NetworkInfo.State.CONNECTED)) {
-                        log("check provisioning after booting");
-                        mFirstProvisioningCheckStarted = true;
-                        checkMobileProvisioning(true, CheckMp.MAX_TIMEOUT_MS, null);
+                        checkMobileProvisioning(CheckMp.MAX_TIMEOUT_MS);
                     }
 
                     EventLogTags.writeConnectivityStateChanged(
@@ -2881,6 +2947,30 @@
                     } else if (info.getDetailedState() ==
                             DetailedState.CAPTIVE_PORTAL_CHECK) {
                         handleCaptivePortalTrackerCheck(info);
+                    } else if (info.getDetailedState() ==
+                            DetailedState.CONNECTED_TO_PROVISIONING_NETWORK) {
+                        /**
+                         * TODO: Create ConnectivityManager.TYPE_MOBILE_PROVISIONING
+                         * for now its an in between network, its a network that
+                         * is actually a default network but we don't want it to be
+                         * announced as such to keep background applications from
+                         * trying to use it. It turns out that some still try so we
+                         * take the additional step of clearing any default routes
+                         * to the link that may have incorrectly setup by the lower
+                         * levels.
+                         */
+                        LinkProperties lp = getLinkProperties(info.getType());
+                        if (DBG) {
+                            log("EVENT_STATE_CHANGED: connected to provisioning network, lp=" + lp);
+                        }
+
+                        // Clear any default routes setup by the radio so
+                        // any activity by applications trying to use this
+                        // connection will fail until the provisioning network
+                        // is enabled.
+                        for (RouteInfo r : lp.getRoutes()) {
+                            removeRoute(lp, r, TO_DEFAULT_TABLE);
+                        }
                     } else if (state == NetworkInfo.State.DISCONNECTED) {
                         handleDisconnect(info);
                     } else if (state == NetworkInfo.State.SUSPENDED) {
@@ -2899,18 +2989,21 @@
                         mLockdownTracker.onNetworkInfoChanged(info);
                     }
                     break;
-                case NetworkStateTracker.EVENT_CONFIGURATION_CHANGED:
+                }
+                case NetworkStateTracker.EVENT_CONFIGURATION_CHANGED: {
                     info = (NetworkInfo) msg.obj;
                     // TODO: Temporary allowing network configuration
                     //       change not resetting sockets.
                     //       @see bug/4455071
                     handleConnectivityChange(info.getType(), false);
                     break;
-                case NetworkStateTracker.EVENT_NETWORK_SUBTYPE_CHANGED:
+                }
+                case NetworkStateTracker.EVENT_NETWORK_SUBTYPE_CHANGED: {
                     info = (NetworkInfo) msg.obj;
-                    type = info.getType();
+                    int type = info.getType();
                     updateNetworkSettings(mNetTrackers[type]);
                     break;
+                }
             }
         }
     }
@@ -3355,8 +3448,6 @@
             }
             ProxyProperties p = new ProxyProperties(data[0], proxyPort, "");
             setGlobalProxy(p);
-        } else {
-            setGlobalProxy(null);
         }
     }
 
@@ -3808,76 +3899,153 @@
                          enabled));
     }
 
+    private boolean isMobileDataStateTrackerReady() {
+        MobileDataStateTracker mdst =
+                (MobileDataStateTracker) mNetTrackers[ConnectivityManager.TYPE_MOBILE_HIPRI];
+        return (mdst != null) && (mdst.isReady());
+    }
+
+    /**
+     * The ResultReceiver resultCode for checkMobileProvisioning (CMP_RESULT_CODE)
+     */
+
+    /**
+     * No connection was possible to the network.
+     */
+    public static final int CMP_RESULT_CODE_NO_CONNECTION = 0;
+
+    /**
+     * A connection was made to the internet, all is well.
+     */
+    public static final int CMP_RESULT_CODE_CONNECTABLE = 1;
+
+    /**
+     * A connection was made but there was a redirection, we appear to be in walled garden.
+     * This is an indication of a warm sim on a mobile network.
+     */
+    public static final int CMP_RESULT_CODE_REDIRECTED = 2;
+
+    /**
+     * A connection was made but no dns server was available to resolve a name to address.
+     * This is an indication of a warm sim on a mobile network.
+     */
+    public static final int CMP_RESULT_CODE_NO_DNS = 3;
+
+    /**
+     * A connection was made but could not open a TCP connection.
+     * This is an indication of a warm sim on a mobile network.
+     */
+    public static final int CMP_RESULT_CODE_NO_TCP_CONNECTION = 4;
+
+    /**
+     * The mobile network is a provisioning network.
+     * This is an indication of a warm sim on a mobile network.
+     */
+    public static final int CMP_RESULT_CODE_PROVISIONING_NETWORK = 5;
+
+    AtomicBoolean mIsCheckingMobileProvisioning = new AtomicBoolean(false);
+
     @Override
-    public int checkMobileProvisioning(final boolean sendNotification, int suggestedTimeOutMs,
-            final ResultReceiver resultReceiver) {
-        log("checkMobileProvisioning: E sendNotification=" + sendNotification
-                + " suggestedTimeOutMs=" + suggestedTimeOutMs
-                + " resultReceiver=" + resultReceiver);
-        enforceChangePermission();
-
-        mFirstProvisioningCheckStarted = true;
-
-        int timeOutMs = suggestedTimeOutMs;
-        if (suggestedTimeOutMs > CheckMp.MAX_TIMEOUT_MS) {
-            timeOutMs = CheckMp.MAX_TIMEOUT_MS;
-        }
-
-        // Check that mobile networks are supported
-        if (!isNetworkSupported(ConnectivityManager.TYPE_MOBILE)
-                || !isNetworkSupported(ConnectivityManager.TYPE_MOBILE_HIPRI)) {
-            log("checkMobileProvisioning: X no mobile network");
-            if (resultReceiver != null) {
-                resultReceiver.send(ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION, null);
-            }
-            return timeOutMs;
-        }
+    public int checkMobileProvisioning(int suggestedTimeOutMs) {
+        int timeOutMs = -1;
+        if (DBG) log("checkMobileProvisioning: E suggestedTimeOutMs=" + suggestedTimeOutMs);
+        enforceConnectivityInternalPermission();
 
         final long token = Binder.clearCallingIdentity();
         try {
+            timeOutMs = suggestedTimeOutMs;
+            if (suggestedTimeOutMs > CheckMp.MAX_TIMEOUT_MS) {
+                timeOutMs = CheckMp.MAX_TIMEOUT_MS;
+            }
+
+            // Check that mobile networks are supported
+            if (!isNetworkSupported(ConnectivityManager.TYPE_MOBILE)
+                    || !isNetworkSupported(ConnectivityManager.TYPE_MOBILE_HIPRI)) {
+                if (DBG) log("checkMobileProvisioning: X no mobile network");
+                return timeOutMs;
+            }
+
+            // If we're already checking don't do it again
+            // TODO: Add a queue of results...
+            if (mIsCheckingMobileProvisioning.getAndSet(true)) {
+                if (DBG) log("checkMobileProvisioning: X already checking ignore for the moment");
+                return timeOutMs;
+            }
+
+            // Start off with notification off
+            setProvNotificationVisible(false, ConnectivityManager.TYPE_NONE, null, null);
+
+            // See if we've alreadying determined if we've got a provsioning connection
+            // if so we don't need to do anything active
+            MobileDataStateTracker mdstDefault = (MobileDataStateTracker)
+                    mNetTrackers[ConnectivityManager.TYPE_MOBILE];
+            boolean isDefaultProvisioning = mdstDefault.isProvisioningNetwork();
+
+            MobileDataStateTracker mdstHipri = (MobileDataStateTracker)
+                    mNetTrackers[ConnectivityManager.TYPE_MOBILE_HIPRI];
+            boolean isHipriProvisioning = mdstHipri.isProvisioningNetwork();
+
+            if (isDefaultProvisioning || isHipriProvisioning) {
+                if (mIsNotificationVisible) {
+                    if (DBG) {
+                        log("checkMobileProvisioning: provisioning-ignore notification is visible");
+                    }
+                } else {
+                    NetworkInfo ni = null;
+                    if (isDefaultProvisioning) {
+                        ni = mdstDefault.getNetworkInfo();
+                    }
+                    if (isHipriProvisioning) {
+                        ni = mdstHipri.getNetworkInfo();
+                    }
+                    String url = getMobileProvisioningUrl();
+                    if ((ni != null) && (!TextUtils.isEmpty(url))) {
+                        setProvNotificationVisible(true, ni.getType(), ni.getExtraInfo(), url);
+                    } else {
+                        if (DBG) log("checkMobileProvisioning: provisioning but no url, ignore");
+                    }
+                }
+                mIsCheckingMobileProvisioning.set(false);
+                return timeOutMs;
+            }
+
             CheckMp checkMp = new CheckMp(mContext, this);
             CheckMp.CallBack cb = new CheckMp.CallBack() {
                 @Override
                 void onComplete(Integer result) {
-                    log("CheckMp.onComplete: result=" + result);
-                    if (resultReceiver != null) {
-                        log("CheckMp.onComplete: send result");
-                        resultReceiver.send(result, null);
-                    }
-                    if (!sendNotification) {
-                        log("CheckMp.onComplete: done, not sending notification");
-                        return;
-                    }
+                    if (DBG) log("CheckMp.onComplete: result=" + result);
                     NetworkInfo ni =
                             mNetTrackers[ConnectivityManager.TYPE_MOBILE_HIPRI].getNetworkInfo();
                     switch(result) {
-                        case ConnectivityManager.CMP_RESULT_CODE_CONNECTABLE:
-                        case ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION: {
-                            log("CheckMp.onComplete: ignore, connected or no connection");
+                        case CMP_RESULT_CODE_CONNECTABLE:
+                        case CMP_RESULT_CODE_NO_CONNECTION: {
+                            if (DBG) log("CheckMp.onComplete: ignore, connected or no connection");
                             break;
                         }
-                        case ConnectivityManager.CMP_RESULT_CODE_REDIRECTED: {
-                            log("CheckMp.onComplete: warm sim");
+                        case CMP_RESULT_CODE_REDIRECTED: {
+                            if (DBG) log("CheckMp.onComplete: warm sim");
                             String url = getMobileProvisioningUrl();
                             if (TextUtils.isEmpty(url)) {
                                 url = getMobileRedirectedProvisioningUrl();
                             }
                             if (TextUtils.isEmpty(url) == false) {
-                                log("CheckMp.onComplete: warm sim (redirected), url=" + url);
-                                setNotificationVisible(true, ni, url);
+                                if (DBG) log("CheckMp.onComplete: warm (redirected), url=" + url);
+                                setProvNotificationVisible(true, ni.getType(), ni.getExtraInfo(),
+                                        url);
                             } else {
-                                log("CheckMp.onComplete: warm sim (redirected), no url");
+                                if (DBG) log("CheckMp.onComplete: warm (redirected), no url");
                             }
                             break;
                         }
-                        case ConnectivityManager.CMP_RESULT_CODE_NO_DNS:
-                        case ConnectivityManager.CMP_RESULT_CODE_NO_TCP_CONNECTION: {
+                        case CMP_RESULT_CODE_NO_DNS:
+                        case CMP_RESULT_CODE_NO_TCP_CONNECTION: {
                             String url = getMobileProvisioningUrl();
                             if (TextUtils.isEmpty(url) == false) {
-                                log("CheckMp.onComplete: warm sim (no dns/tcp), url=" + url);
-                                setNotificationVisible(true, ni, url);
+                                if (DBG) log("CheckMp.onComplete: warm (no dns/tcp), url=" + url);
+                                setProvNotificationVisible(true, ni.getType(), ni.getExtraInfo(),
+                                        url);
                             } else {
-                                log("CheckMp.onComplete: warm sim (no dns/tcp), no url");
+                                if (DBG) log("CheckMp.onComplete: warm (no dns/tcp), no url");
                             }
                             break;
                         }
@@ -3886,16 +4054,16 @@
                             break;
                         }
                     }
+                    mIsCheckingMobileProvisioning.set(false);
                 }
             };
             CheckMp.Params params =
                     new CheckMp.Params(checkMp.getDefaultUrl(), timeOutMs, cb);
-            log("checkMobileProvisioning: params=" + params);
-            setNotificationVisible(false, null, null);
+            if (DBG) log("checkMobileProvisioning: params=" + params);
             checkMp.execute(params);
         } finally {
             Binder.restoreCallingIdentity(token);
-            log("checkMobileProvisioning: X");
+            if (DBG) log("checkMobileProvisioning: X");
         }
         return timeOutMs;
     }
@@ -3967,26 +4135,38 @@
          * a known address that fetches the data we expect.
          */
         private synchronized Integer isMobileOk(Params params) {
-            Integer result = ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION;
+            Integer result = CMP_RESULT_CODE_NO_CONNECTION;
             Uri orgUri = Uri.parse(params.mUrl);
             Random rand = new Random();
             mParams = params;
 
             if (mCs.isNetworkSupported(ConnectivityManager.TYPE_MOBILE) == false) {
                 log("isMobileOk: not mobile capable");
-                result = ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION;
+                result = CMP_RESULT_CODE_NO_CONNECTION;
                 return result;
             }
 
             try {
-                // Enable fail fast as we'll do retries here and use a
-                // hipri connection so the default connection stays active.
-                log("isMobileOk: start hipri url=" + params.mUrl);
-                mCs.setEnableFailFastMobileData(DctConstants.ENABLED);
-
                 // Continue trying to connect until time has run out
                 long endTime = SystemClock.elapsedRealtime() + params.mTimeOutMs;
 
+                if (!mCs.isMobileDataStateTrackerReady()) {
+                    // Wait for MobileDataStateTracker to be ready.
+                    if (DBG) log("isMobileOk: mdst is not ready");
+                    while(SystemClock.elapsedRealtime() < endTime) {
+                        if (mCs.isMobileDataStateTrackerReady()) {
+                            // Enable fail fast as we'll do retries here and use a
+                            // hipri connection so the default connection stays active.
+                            if (DBG) log("isMobileOk: mdst ready, enable fail fast of mobile data");
+                            mCs.setEnableFailFastMobileData(DctConstants.ENABLED);
+                            break;
+                        }
+                        sleep(1);
+                    }
+                }
+
+                log("isMobileOk: start hipri url=" + params.mUrl);
+
                 // First wait until we can start using hipri
                 Binder binder = new Binder();
                 while(SystemClock.elapsedRealtime() < endTime) {
@@ -3998,7 +4178,7 @@
                             break;
                     }
                     if (VDBG) log("isMobileOk: hipri not started yet");
-                    result = ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION;
+                    result = CMP_RESULT_CODE_NO_CONNECTION;
                     sleep(1);
                 }
 
@@ -4011,15 +4191,26 @@
                         NetworkInfo.State state = mCs
                                 .getNetworkInfo(ConnectivityManager.TYPE_MOBILE_HIPRI).getState();
                         if (state != NetworkInfo.State.CONNECTED) {
-                            if (VDBG) {
+                            if (true/*VDBG*/) {
                                 log("isMobileOk: not connected ni=" +
                                     mCs.getNetworkInfo(ConnectivityManager.TYPE_MOBILE_HIPRI));
                             }
                             sleep(1);
-                            result = ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION;
+                            result = CMP_RESULT_CODE_NO_CONNECTION;
                             continue;
                         }
 
+                        // Hipri has started check if this is a provisioning url
+                        MobileDataStateTracker mdst = (MobileDataStateTracker)
+                                mCs.mNetTrackers[ConnectivityManager.TYPE_MOBILE_HIPRI];
+                        if (mdst.isProvisioningNetwork()) {
+                            if (DBG) log("isMobileOk: isProvisioningNetwork is true, no TCP conn");
+                            result = CMP_RESULT_CODE_NO_TCP_CONNECTION;
+                            return result;
+                        } else {
+                            if (DBG) log("isMobileOk: isProvisioningNetwork is false, continue");
+                        }
+
                         // Get of the addresses associated with the url host. We need to use the
                         // address otherwise HttpURLConnection object will use the name to get
                         // the addresses and is will try every address but that will bypass the
@@ -4030,7 +4221,7 @@
                             addresses = InetAddress.getAllByName(orgUri.getHost());
                         } catch (UnknownHostException e) {
                             log("isMobileOk: UnknownHostException");
-                            result = ConnectivityManager.CMP_RESULT_CODE_NO_DNS;
+                            result = CMP_RESULT_CODE_NO_DNS;
                             return result;
                         }
                         log("isMobileOk: addresses=" + inetAddressesToString(addresses));
@@ -4095,9 +4286,9 @@
                                 urlConn.setRequestProperty("Connection", "close");
                                 int responseCode = urlConn.getResponseCode();
                                 if (responseCode == 204) {
-                                    result = ConnectivityManager.CMP_RESULT_CODE_CONNECTABLE;
+                                    result = CMP_RESULT_CODE_CONNECTABLE;
                                 } else {
-                                    result = ConnectivityManager.CMP_RESULT_CODE_REDIRECTED;
+                                    result = CMP_RESULT_CODE_REDIRECTED;
                                 }
                                 log("isMobileOk: connected responseCode=" + responseCode);
                                 urlConn.disconnect();
@@ -4111,7 +4302,7 @@
                                 }
                             }
                         }
-                        result = ConnectivityManager.CMP_RESULT_CODE_NO_TCP_CONNECTION;
+                        result = CMP_RESULT_CODE_NO_TCP_CONNECTION;
                         log("isMobileOk: loops|timed out");
                         return result;
                     } catch (Exception e) {
@@ -4125,6 +4316,23 @@
                 mCs.setEnableFailFastMobileData(DctConstants.DISABLED);
                 mCs.stopUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE,
                         Phone.FEATURE_ENABLE_HIPRI);
+
+                // Wait for hipri to disconnect.
+                long endTime = SystemClock.elapsedRealtime() + 5000;
+
+                while(SystemClock.elapsedRealtime() < endTime) {
+                    NetworkInfo.State state = mCs
+                            .getNetworkInfo(ConnectivityManager.TYPE_MOBILE_HIPRI).getState();
+                    if (state != NetworkInfo.State.DISCONNECTED) {
+                        if (VDBG) {
+                            log("isMobileOk: connected ni=" +
+                                mCs.getNetworkInfo(ConnectivityManager.TYPE_MOBILE_HIPRI));
+                        }
+                        sleep(1);
+                        continue;
+                    }
+                }
+
                 log("isMobileOk: X result=" + result);
             }
             return result;
@@ -4190,10 +4398,55 @@
         }
     }
 
-    private static final String NOTIFICATION_ID = "CaptivePortal.Notification";
+    // TODO: Move to ConnectivityManager and make public?
+    private static final String CONNECTED_TO_PROVISIONING_NETWORK_ACTION =
+            "com.android.server.connectivityservice.CONNECTED_TO_PROVISIONING_NETWORK_ACTION";
 
-    private void setNotificationVisible(boolean visible, NetworkInfo networkInfo, String url) {
-        log("setNotificationVisible: E visible=" + visible + " ni=" + networkInfo + " url=" + url);
+    private BroadcastReceiver mProvisioningReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (intent.getAction().equals(CONNECTED_TO_PROVISIONING_NETWORK_ACTION)) {
+                handleMobileProvisioningAction(intent.getStringExtra("EXTRA_URL"));
+            }
+        }
+    };
+
+    private void handleMobileProvisioningAction(String url) {
+        // Notication mark notification as not visible
+        setProvNotificationVisible(false, ConnectivityManager.TYPE_NONE, null, null);
+
+        // If provisioning network handle as a special case,
+        // otherwise launch browser with the intent directly.
+        NetworkInfo ni = getProvisioningNetworkInfo();
+        if ((ni != null) && ni.getDetailedState() ==
+                    NetworkInfo.DetailedState.CONNECTED_TO_PROVISIONING_NETWORK) {
+            if (DBG) log("handleMobileProvisioningAction: on provisioning network");
+            MobileDataStateTracker mdst = (MobileDataStateTracker)
+                    mNetTrackers[ConnectivityManager.TYPE_MOBILE];
+            mdst.enableMobileProvisioning(url);
+        } else {
+            if (DBG) log("handleMobileProvisioningAction: on default network");
+            Intent newIntent =
+                    new Intent(Intent.ACTION_VIEW, Uri.parse(url));
+            newIntent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT |
+                    Intent.FLAG_ACTIVITY_NEW_TASK);
+            try {
+                mContext.startActivity(newIntent);
+            } catch (ActivityNotFoundException e) {
+                loge("handleMobileProvisioningAction: startActivity failed" + e);
+            }
+        }
+    }
+
+    private static final String NOTIFICATION_ID = "CaptivePortal.Notification";
+    private volatile boolean mIsNotificationVisible = false;
+
+    private void setProvNotificationVisible(boolean visible, int networkType, String extraInfo,
+            String url) {
+        if (DBG) {
+            log("setProvNotificationVisible: E visible=" + visible + " networkType=" + networkType
+                + " extraInfo=" + extraInfo + " url=" + url);
+        }
 
         Resources r = Resources.getSystem();
         NotificationManager notificationManager = (NotificationManager) mContext
@@ -4203,50 +4456,64 @@
             CharSequence title;
             CharSequence details;
             int icon;
-            switch (networkInfo.getType()) {
+            Intent intent;
+            Notification notification = new Notification();
+            switch (networkType) {
                 case ConnectivityManager.TYPE_WIFI:
-                    log("setNotificationVisible: TYPE_WIFI");
                     title = r.getString(R.string.wifi_available_sign_in, 0);
                     details = r.getString(R.string.network_available_sign_in_detailed,
-                            networkInfo.getExtraInfo());
+                            extraInfo);
                     icon = R.drawable.stat_notify_wifi_in_range;
+                    intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
+                    intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT |
+                            Intent.FLAG_ACTIVITY_NEW_TASK);
+                    notification.contentIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
                     break;
                 case ConnectivityManager.TYPE_MOBILE:
                 case ConnectivityManager.TYPE_MOBILE_HIPRI:
-                    log("setNotificationVisible: TYPE_MOBILE|HIPRI");
                     title = r.getString(R.string.network_available_sign_in, 0);
                     // TODO: Change this to pull from NetworkInfo once a printable
                     // name has been added to it
                     details = mTelephonyManager.getNetworkOperatorName();
                     icon = R.drawable.stat_notify_rssi_in_range;
+                    intent = new Intent(CONNECTED_TO_PROVISIONING_NETWORK_ACTION);
+                    intent.putExtra("EXTRA_URL", url);
+                    intent.setFlags(0);
+                    notification.contentIntent = PendingIntent.getBroadcast(mContext, 0, intent, 0);
                     break;
                 default:
-                    log("setNotificationVisible: other type=" + networkInfo.getType());
                     title = r.getString(R.string.network_available_sign_in, 0);
                     details = r.getString(R.string.network_available_sign_in_detailed,
-                            networkInfo.getExtraInfo());
+                            extraInfo);
                     icon = R.drawable.stat_notify_rssi_in_range;
+                    intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
+                    intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT |
+                            Intent.FLAG_ACTIVITY_NEW_TASK);
+                    notification.contentIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
                     break;
             }
 
-            Notification notification = new Notification();
             notification.when = 0;
             notification.icon = icon;
             notification.flags = Notification.FLAG_AUTO_CANCEL;
-            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
-            intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT |
-                    Intent.FLAG_ACTIVITY_NEW_TASK);
-            notification.contentIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
             notification.tickerText = title;
             notification.setLatestEventInfo(mContext, title, details, notification.contentIntent);
 
-            log("setNotificaitionVisible: notify notificaiton=" + notification);
-            notificationManager.notify(NOTIFICATION_ID, 1, notification);
+            try {
+                notificationManager.notify(NOTIFICATION_ID, 1, notification);
+            } catch (NullPointerException npe) {
+                loge("setNotificaitionVisible: visible notificationManager npe=" + npe);
+                npe.printStackTrace();
+            }
         } else {
-            log("setNotificaitionVisible: cancel");
-            notificationManager.cancel(NOTIFICATION_ID, 1);
+            try {
+                notificationManager.cancel(NOTIFICATION_ID, 1);
+            } catch (NullPointerException npe) {
+                loge("setNotificaitionVisible: cancel notificationManager npe=" + npe);
+                npe.printStackTrace();
+            }
         }
-        log("setNotificationVisible: X visible=" + visible + " ni=" + networkInfo + " url=" + url);
+        mIsNotificationVisible = visible;
     }
 
     /** Location to an updatable file listing carrier provisioning urls.
@@ -4375,6 +4642,13 @@
         return url;
     }
 
+    @Override
+    public void setProvisioningNotificationVisible(boolean visible, int networkType,
+            String extraInfo, String url) {
+        enforceConnectivityInternalPermission();
+        setProvNotificationVisible(visible, networkType, extraInfo, url);
+    }
+
     private void onUserStart(int userId) {
         synchronized(mVpns) {
             Vpn userVpn = mVpns.get(userId);
diff --git a/services/java/com/android/server/PreferredComponent.java b/services/java/com/android/server/PreferredComponent.java
index bb22545..134b198 100644
--- a/services/java/com/android/server/PreferredComponent.java
+++ b/services/java/com/android/server/PreferredComponent.java
@@ -33,8 +33,16 @@
 import java.util.List;
 
 public class PreferredComponent {
+    private static final String TAG_SET = "set";
+    private static final String ATTR_ALWAYS = "always"; // boolean
+    private static final String ATTR_MATCH = "match"; // number
+    private static final String ATTR_NAME = "name"; // component name
+    private static final String ATTR_SET = "set"; // number
+
     public final int mMatch;
     public final ComponentName mComponent;
+    // Whether this is to be the one that's always chosen. If false, it's the most recently chosen.
+    public boolean mAlways;
 
     private final String[] mSetPackages;
     private final String[] mSetClasses;
@@ -50,10 +58,11 @@
     }
 
     public PreferredComponent(Callbacks callbacks, int match, ComponentName[] set,
-            ComponentName component) {
+            ComponentName component, boolean always) {
         mCallbacks = callbacks;
         mMatch = match&IntentFilter.MATCH_CATEGORY_MASK;
         mComponent = component;
+        mAlways = always;
         mShortComponent = component.flattenToShortString();
         mParseError = null;
         if (set != null) {
@@ -86,15 +95,17 @@
     public PreferredComponent(Callbacks callbacks, XmlPullParser parser)
             throws XmlPullParserException, IOException {
         mCallbacks = callbacks;
-        mShortComponent = parser.getAttributeValue(null, "name");
+        mShortComponent = parser.getAttributeValue(null, ATTR_NAME);
         mComponent = ComponentName.unflattenFromString(mShortComponent);
         if (mComponent == null) {
             mParseError = "Bad activity name " + mShortComponent;
         }
-        String matchStr = parser.getAttributeValue(null, "match");
+        String matchStr = parser.getAttributeValue(null, ATTR_MATCH);
         mMatch = matchStr != null ? Integer.parseInt(matchStr, 16) : 0;
-        String setCountStr = parser.getAttributeValue(null, "set");
+        String setCountStr = parser.getAttributeValue(null, ATTR_SET);
         int setCount = setCountStr != null ? Integer.parseInt(setCountStr) : 0;
+        String alwaysStr = parser.getAttributeValue(null, ATTR_ALWAYS);
+        mAlways = alwaysStr != null ? Boolean.parseBoolean(alwaysStr) : true;
 
         String[] myPackages = setCount > 0 ? new String[setCount] : null;
         String[] myClasses = setCount > 0 ? new String[setCount] : null;
@@ -115,8 +126,8 @@
             String tagName = parser.getName();
             //Log.i(TAG, "Parse outerDepth=" + outerDepth + " depth="
             //        + parser.getDepth() + " tag=" + tagName);
-            if (tagName.equals("set")) {
-                String name = parser.getAttributeValue(null, "name");
+            if (tagName.equals(TAG_SET)) {
+                String name = parser.getAttributeValue(null, ATTR_NAME);
                 if (name == null) {
                     if (mParseError == null) {
                         mParseError = "No name in set tag in preferred activity "
@@ -166,16 +177,17 @@
 
     public void writeToXml(XmlSerializer serializer, boolean full) throws IOException {
         final int NS = mSetClasses != null ? mSetClasses.length : 0;
-        serializer.attribute(null, "name", mShortComponent);
+        serializer.attribute(null, ATTR_NAME, mShortComponent);
         if (full) {
             if (mMatch != 0) {
-                serializer.attribute(null, "match", Integer.toHexString(mMatch));
+                serializer.attribute(null, ATTR_MATCH, Integer.toHexString(mMatch));
             }
-            serializer.attribute(null, "set", Integer.toString(NS));
+            serializer.attribute(null, ATTR_ALWAYS, Boolean.toString(mAlways));
+            serializer.attribute(null, ATTR_SET, Integer.toString(NS));
             for (int s=0; s<NS; s++) {
-                serializer.startTag(null, "set");
-                serializer.attribute(null, "name", mSetComponents[s]);
-                serializer.endTag(null, "set");
+                serializer.startTag(null, TAG_SET);
+                serializer.attribute(null, ATTR_NAME, mSetComponents[s]);
+                serializer.endTag(null, TAG_SET);
             }
         }
     }
diff --git a/services/java/com/android/server/am/ActivityStackSupervisor.java b/services/java/com/android/server/am/ActivityStackSupervisor.java
index 250ab4a..3e0b5eb 100644
--- a/services/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/java/com/android/server/am/ActivityStackSupervisor.java
@@ -1426,8 +1426,7 @@
                             if ((launchFlags &
                                     (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_TASK_ON_HOME))
                                     == (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_TASK_ON_HOME)) {
-                                // Caller wants to appear on home activity, so before starting
-                                // their own activity we will bring home to the front.
+                                // Caller wants to appear on home activity.
                                 r.mLaunchHomeTaskNext = true;
                             }
                             targetStack.moveTaskToFrontLocked(intentActivity.task, r, options);
@@ -1541,6 +1540,8 @@
                         // don't use that intent!)  And for paranoia, make
                         // sure we have correctly resumed the top activity.
                         if (doResume) {
+                            // Reset flag so it gets correctly reevaluated.
+                            intentActivity.mLaunchHomeTaskNext = false;
                             setLaunchHomeTaskNextFlag(sourceRecord, intentActivity, targetStack);
                             targetStack.resumeTopActivityLocked(null, options);
                         } else {
diff --git a/services/java/com/android/server/content/ContentService.java b/services/java/com/android/server/content/ContentService.java
index a56af08..7c82821 100644
--- a/services/java/com/android/server/content/ContentService.java
+++ b/services/java/com/android/server/content/ContentService.java
@@ -19,7 +19,6 @@
 import android.Manifest;
 import android.accounts.Account;
 import android.app.ActivityManager;
-import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.IContentService;
@@ -363,8 +362,8 @@
             if (syncManager != null) {
                 if (request.hasAuthority()) {
                     // Sync Adapter registered with the system - old API.
-                    final  Account account = request.getProviderInfo().first;
-                    final String provider = request.getProviderInfo().second;
+                    final  Account account = request.getAccount();
+                    final String provider = request.getProvider();
                     if (request.isPeriodic()) {
                         mContext.enforceCallingOrSelfPermission(
                                 Manifest.permission.WRITE_SYNC_SETTINGS,
@@ -386,20 +385,7 @@
                                 false /* onlyThoseWithUnknownSyncableState */);
                     }
                 } else {
-                    // Anonymous sync - new API.
-                    final ComponentName syncService = request.getService();
-                    if (request.isPeriodic()) {
-                        throw new RuntimeException("Periodic anonymous syncs not implemented yet.");
-                    } else {
-                        long beforeRuntimeMillis = (flextime) * 1000;
-                        long runtimeMillis = runAtTime * 1000;
-                        syncManager.scheduleSync(
-                              syncService, userId, uId, extras,
-                              beforeRuntimeMillis,
-                              runtimeMillis,
-                              false /* onlyThoseWithUnknownSyncableState */); // Empty function.
-                        throw new RuntimeException("One-off anonymous syncs not implemented yet.");
-                    }
+                    Log.w(TAG, "Unrecognised sync parameters, doing nothing.");
                 }
             }
         } finally {
diff --git a/services/java/com/android/server/content/SyncManager.java b/services/java/com/android/server/content/SyncManager.java
index a6b69a2..9a41166 100644
--- a/services/java/com/android/server/content/SyncManager.java
+++ b/services/java/com/android/server/content/SyncManager.java
@@ -87,6 +87,7 @@
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
@@ -539,177 +540,6 @@
     }
 
     /**
-     * Initiate a sync using the new anonymous service API.
-     * TODO: Implement.
-     * @param cname SyncService component bound to in order to perform the sync. 
-     * @param userId the id of the user whose accounts are to be synced. If userId is USER_ALL,
-     *          then all users' accounts are considered.
-     * @param uid Linux uid of the application that is performing the sync. 
-     * @param extras a Map of SyncAdapter-specific information to control
-     *          syncs of a specific provider. Can be null.
-     * @param beforeRunTimeMillis
-     *  @param runtimeMillis
-     */
-    public void scheduleSync(ComponentName cname, int userId, int uid, Bundle extras,
-            long beforeRunTimeMillis, long runtimeMillis,
-            boolean onlyThoseWithUnknownSyncableState) {
-/**
-        boolean isLoggable = Log.isLoggable(TAG, Log.VERBOSE);
-
-        final boolean backgroundDataUsageAllowed = !mBootCompleted ||
-                getConnectivityManager().getBackgroundDataSetting();
-
-        if (extras == null) {
-            extras = new Bundle();
-        }
-        if (isLoggable) {
-            Log.e(TAG, requestedAccount + " " + extras.toString() + " " + requestedAuthority);
-        }
-        Boolean expedited = extras.getBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, false);
-        if (expedited) {
-            runtimeMillis = -1; // this means schedule at the front of the queue
-        }
-
-        AccountAndUser[] accounts;
-        if (requestedAccount != null && userId != UserHandle.USER_ALL) {
-            accounts = new AccountAndUser[] { new AccountAndUser(requestedAccount, userId) };
-        } else {
-            // if the accounts aren't configured yet then we can't support an account-less
-            // sync request
-            accounts = mRunningAccounts;
-            if (accounts.length == 0) {
-                if (isLoggable) {
-                    Log.v(TAG, "scheduleSync: no accounts configured, dropping");
-                }
-                return;
-            }
-        }
-
-        final boolean uploadOnly = extras.getBoolean(ContentResolver.SYNC_EXTRAS_UPLOAD, false);
-        final boolean manualSync = extras.getBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, false);
-        if (manualSync) {
-            extras.putBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_BACKOFF, true);
-            extras.putBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_SETTINGS, true);
-        }
-        final boolean ignoreSettings =
-                extras.getBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_SETTINGS, false);
-
-        int source;
-        if (uploadOnly) {
-            source = SyncStorageEngine.SOURCE_LOCAL;
-        } else if (manualSync) {
-            source = SyncStorageEngine.SOURCE_USER;
-        } else if (requestedAuthority == null) {
-            source = SyncStorageEngine.SOURCE_POLL;
-        } else {
-            // this isn't strictly server, since arbitrary callers can (and do) request
-            // a non-forced two-way sync on a specific url
-            source = SyncStorageEngine.SOURCE_SERVER;
-        }
-
-        for (AccountAndUser account : accounts) {
-            // Compile a list of authorities that have sync adapters.
-            // For each authority sync each account that matches a sync adapter.
-            final HashSet<String> syncableAuthorities = new HashSet<String>();
-            for (RegisteredServicesCache.ServiceInfo<SyncAdapterType> syncAdapter :
-                    mSyncAdapters.getAllServices(account.userId)) {
-                syncableAuthorities.add(syncAdapter.type.authority);
-            }
-
-            // if the url was specified then replace the list of authorities
-            // with just this authority or clear it if this authority isn't
-            // syncable
-            if (requestedAuthority != null) {
-                final boolean hasSyncAdapter = syncableAuthorities.contains(requestedAuthority);
-                syncableAuthorities.clear();
-                if (hasSyncAdapter) syncableAuthorities.add(requestedAuthority);
-            }
-
-            for (String authority : syncableAuthorities) {
-                int isSyncable = getIsSyncable(account.account, account.userId,
-                        authority);
-                if (isSyncable == 0) {
-                    continue;
-                }
-                final RegisteredServicesCache.ServiceInfo<SyncAdapterType> syncAdapterInfo;
-                syncAdapterInfo = mSyncAdapters.getServiceInfo(
-                        SyncAdapterType.newKey(authority, account.account.type), account.userId);
-                if (syncAdapterInfo == null) {
-                    continue;
-                }
-                final boolean allowParallelSyncs = syncAdapterInfo.type.allowParallelSyncs();
-                final boolean isAlwaysSyncable = syncAdapterInfo.type.isAlwaysSyncable();
-                if (isSyncable < 0 && isAlwaysSyncable) {
-                    mSyncStorageEngine.setIsSyncable(account.account, account.userId, authority, 1);
-                    isSyncable = 1;
-                }
-                if (onlyThoseWithUnkownSyncableState && isSyncable >= 0) {
-                    continue;
-                }
-                if (!syncAdapterInfo.type.supportsUploading() && uploadOnly) {
-                    continue;
-                }
-
-                // always allow if the isSyncable state is unknown
-                boolean syncAllowed =
-                        (isSyncable < 0)
-                        || ignoreSettings
-                        || (backgroundDataUsageAllowed
-                                && mSyncStorageEngine.getMasterSyncAutomatically(account.userId)
-                                && mSyncStorageEngine.getSyncAutomatically(account.account,
-                                        account.userId, authority));
-                if (!syncAllowed) {
-                    if (isLoggable) {
-                        Log.d(TAG, "scheduleSync: sync of " + account + ", " + authority
-                                + " is not allowed, dropping request");
-                    }
-                    continue;
-                }
-
-                Pair<Long, Long> backoff = mSyncStorageEngine
-                        .getBackoff(account.account, account.userId, authority);
-                long delayUntil = mSyncStorageEngine.getDelayUntilTime(account.account,
-                        account.userId, authority);
-                final long backoffTime = backoff != null ? backoff.first : 0;
-                if (isSyncable < 0) {
-                    // Initialisation sync.
-                    Bundle newExtras = new Bundle();
-                    newExtras.putBoolean(ContentResolver.SYNC_EXTRAS_INITIALIZE, true);
-                    if (isLoggable) {
-                        Log.v(TAG, "schedule initialisation Sync:"
-                                + ", delay until " + delayUntil
-                                + ", run by " + 0
-                                + ", source " + source
-                                + ", account " + account
-                                + ", authority " + authority
-                                + ", extras " + newExtras);
-                    }
-                    scheduleSyncOperation(
-                            new SyncOperation(account.account, account.userId, reason, source,
-                                    authority, newExtras, 0 /* immediate , 0 /* No flex time,
-                                    backoffTime, delayUntil, allowParallelSyncs));
-                }
-                if (!onlyThoseWithUnkownSyncableState) {
-                    if (isLoggable) {
-                        Log.v(TAG, "scheduleSync:"
-                                + " delay until " + delayUntil
-                                + " run by " + runtimeMillis
-                                + " flex " + beforeRuntimeMillis
-                                + ", source " + source
-                                + ", account " + account
-                                + ", authority " + authority
-                                + ", extras " + extras);
-                    }
-                    scheduleSyncOperation(
-                            new SyncOperation(account.account, account.userId, reason, source,
-                                    authority, extras, runtimeMillis, beforeRuntimeMillis,
-                                    backoffTime, delayUntil, allowParallelSyncs));
-                }
-            }
-        }*/
-    }
-
-    /**
      * Initiate a sync. This can start a sync for all providers
      * (pass null to url, set onlyTicklable to false), only those
      * providers that are marked as ticklable (pass null to url,
@@ -2190,17 +2020,14 @@
                 for (int i = 0, N = authorityInfo.periodicSyncs.size(); i < N; i++) {
                     final PeriodicSync sync = authorityInfo.periodicSyncs.get(i);
                     final Bundle extras = sync.extras;
-                    final Long periodInMillis = sync.period * 1000;
-                    final Long flexInMillis = sync.flexTime * 1000;
+                    final long periodInMillis = sync.period * 1000;
+                    final long flexInMillis = sync.flexTime * 1000;
                     // Skip if the period is invalid.
                     if (periodInMillis <= 0) {
                         continue;
                     }
                     // Find when this periodic sync was last scheduled to run.
                     final long lastPollTimeAbsolute = status.getPeriodicSyncTime(i);
-                    final long shiftedLastPollTimeAbsolute =
-                            (0 < lastPollTimeAbsolute - mSyncRandomOffsetMillis) ?
-                                    (lastPollTimeAbsolute - mSyncRandomOffsetMillis) : 0;
                     long remainingMillis
                         = periodInMillis - (shiftedNowAbsolute % periodInMillis);
                     long timeSinceLastRunMillis
@@ -2217,7 +2044,6 @@
                         + " remaining: " + (remainingMillis)
                         + " time_since_last: " + timeSinceLastRunMillis
                         + " last poll absol: " + lastPollTimeAbsolute
-                        + " last poll shifed: " + shiftedLastPollTimeAbsolute
                         + " shifted now: " + shiftedNowAbsolute
                         + " run_early: " + runEarly);
                     }
@@ -2392,6 +2218,15 @@
                         }
                         continue;
                     }
+
+                    // If the op isn't allowed on metered networks and we're on one, drop it.
+                    if (getConnectivityManager().isActiveNetworkMetered()
+                            && op.isMeteredDisallowed()) {
+                        operationIterator.remove();
+                        mSyncStorageEngine.deleteFromPending(op.pendingOperation);
+                        continue;
+                    }
+
                     // TODO: change this behaviour for non-registered syncs.
                     final RegisteredServicesCache.ServiceInfo<SyncAdapterType> syncAdapterInfo;
                     syncAdapterInfo = mSyncAdapters.getServiceInfo(
diff --git a/services/java/com/android/server/content/SyncOperation.java b/services/java/com/android/server/content/SyncOperation.java
index ce1dde4..4856747 100644
--- a/services/java/com/android/server/content/SyncOperation.java
+++ b/services/java/com/android/server/content/SyncOperation.java
@@ -111,40 +111,6 @@
         this.key = toKey();
     }
 
-    public SyncOperation(SyncRequest request, int userId, int reason, int source, long backoff,
-            long delayUntil, boolean allowParallelSyncs) {
-        if (request.hasAuthority()) {
-            Pair<Account, String> providerInfo = request.getProviderInfo();
-            this.account = providerInfo.first;
-            this.authority = providerInfo.second;
-            this.service = null;
-        } else {
-            this.service = request.getService();
-            this.account = null;
-            this.authority = null;
-        }
-        this.userId = userId;
-        this.reason = reason;
-        this.syncSource = source;
-        this.allowParallelSyncs = allowParallelSyncs;
-        this.extras = new Bundle(extras);
-        cleanBundle(this.extras);
-        this.delayUntil = delayUntil;
-        this.backoff = backoff;
-        final long now = SystemClock.elapsedRealtime();
-        if (request.isExpedited()) {
-            this.expedited = true;
-            this.latestRunTime = now;
-            this.flexTime = 0;
-        } else {
-            this.expedited = false;
-            this.latestRunTime = now + (request.getSyncRunTime() * 1000);
-            this.flexTime = request.getSyncFlexTime() * 1000;
-        }
-        updateEffectiveRunTime();
-        this.key = toKey();
-    }
-
     /**
      * Make sure the bundle attached to this SyncOperation doesn't have unnecessary
      * flags set.
@@ -159,7 +125,7 @@
         removeFalseExtra(bundle, ContentResolver.SYNC_EXTRAS_DISCARD_LOCAL_DELETIONS);
         removeFalseExtra(bundle, ContentResolver.SYNC_EXTRAS_EXPEDITED);
         removeFalseExtra(bundle, ContentResolver.SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS);
-        removeFalseExtra(bundle, ContentResolver.SYNC_EXTRAS_ALLOW_METERED);
+        removeFalseExtra(bundle, ContentResolver.SYNC_EXTRAS_DISALLOW_METERED);
 
         // Remove Config data.
         bundle.remove(ContentResolver.SYNC_EXTRAS_EXPECTED_UPLOAD);
@@ -245,8 +211,8 @@
         }
     }
 
-    public boolean isMetered() {
-        return extras.getBoolean(ContentResolver.SYNC_EXTRAS_ALLOW_METERED, false);
+    public boolean isMeteredDisallowed() {
+        return extras.getBoolean(ContentResolver.SYNC_EXTRAS_DISALLOW_METERED, false);
     }
 
     public boolean isInitialization() {
diff --git a/services/java/com/android/server/content/SyncStorageEngine.java b/services/java/com/android/server/content/SyncStorageEngine.java
index e3693f8..1b9ed98 100644
--- a/services/java/com/android/server/content/SyncStorageEngine.java
+++ b/services/java/com/android/server/content/SyncStorageEngine.java
@@ -71,7 +71,7 @@
 public class SyncStorageEngine extends Handler {
 
     private static final String TAG = "SyncManager";
-    private static final boolean DEBUG = true;
+    private static final boolean DEBUG = false;
     private static final String TAG_FILE = "SyncManagerFile";
 
     private static final String XML_ATTR_NEXT_AUTHORITY_ID = "nextAuthorityId";
diff --git a/services/java/com/android/server/location/GeofenceProxy.java b/services/java/com/android/server/location/GeofenceProxy.java
index a86c923..bbc1f47 100644
--- a/services/java/com/android/server/location/GeofenceProxy.java
+++ b/services/java/com/android/server/location/GeofenceProxy.java
@@ -41,11 +41,15 @@
     private static final String TAG = "GeofenceProxy";
     private static final String SERVICE_ACTION =
             "com.android.location.service.GeofenceProvider";
-    private ServiceWatcher mServiceWatcher;
-    private Context mContext;
+    private final ServiceWatcher mServiceWatcher;
+    private final Context mContext;
+    private final IGpsGeofenceHardware mGpsGeofenceHardware;
+    private final IFusedGeofenceHardware mFusedGeofenceHardware;
+
+    private final Object mLock = new Object();
+
+    // Access to mGeofenceHardware needs to be synchronized by mLock.
     private IGeofenceHardware mGeofenceHardware;
-    private IGpsGeofenceHardware mGpsGeofenceHardware;
-    private IFusedGeofenceHardware mFusedGeofenceHardware;
 
     private static final int GEOFENCE_PROVIDER_CONNECTED = 1;
     private static final int GEOFENCE_HARDWARE_CONNECTED = 2;
@@ -90,10 +94,6 @@
         return mServiceWatcher.start();
     }
 
-    private IGeofenceProvider getGeofenceProviderService() {
-        return IGeofenceProvider.Stub.asInterface(mServiceWatcher.getBinder());
-    }
-
     private void bindHardwareGeofence() {
         mContext.bindServiceAsUser(new Intent(mContext, GeofenceHardwareService.class),
                 mServiceConnection, Context.BIND_AUTO_CREATE, UserHandle.OWNER);
@@ -102,26 +102,34 @@
     private ServiceConnection mServiceConnection = new ServiceConnection() {
         @Override
         public void onServiceConnected(ComponentName name, IBinder service) {
-            mGeofenceHardware = IGeofenceHardware.Stub.asInterface(service);
-            mHandler.sendEmptyMessage(GEOFENCE_HARDWARE_CONNECTED);
+            synchronized (mLock) {
+                mGeofenceHardware = IGeofenceHardware.Stub.asInterface(service);
+                mHandler.sendEmptyMessage(GEOFENCE_HARDWARE_CONNECTED);
+            }
         }
 
         @Override
         public void onServiceDisconnected(ComponentName name) {
-            mGeofenceHardware = null;
-            mHandler.sendEmptyMessage(GEOFENCE_HARDWARE_DISCONNECTED);
+            synchronized (mLock) {
+                mGeofenceHardware = null;
+                mHandler.sendEmptyMessage(GEOFENCE_HARDWARE_DISCONNECTED);
+            }
         }
     };
 
-    private void setGeofenceHardwareInProvider() {
+    private void setGeofenceHardwareInProviderLocked() {
         try {
-            getGeofenceProviderService().setGeofenceHardware(mGeofenceHardware);
+            IGeofenceProvider provider = IGeofenceProvider.Stub.asInterface(
+                      mServiceWatcher.getBinder());
+            if (provider != null) {
+                provider.setGeofenceHardware(mGeofenceHardware);
+            }
         } catch (RemoteException e) {
-            Log.e(TAG, "Remote Exception: setGeofenceHardwareInProvider: " + e);
+            Log.e(TAG, "Remote Exception: setGeofenceHardwareInProviderLocked: " + e);
         }
     }
 
-    private void setGpsGeofence() {
+    private void setGpsGeofenceLocked() {
         try {
             mGeofenceHardware.setGpsGeofenceHardware(mGpsGeofenceHardware);
         } catch (RemoteException e) {
@@ -129,7 +137,7 @@
         }
     }
 
-    private void setFusedGeofence() {
+    private void setFusedGeofenceLocked() {
         try {
             mGeofenceHardware.setFusedGeofenceHardware(mFusedGeofenceHardware);
         } catch(RemoteException e) {
@@ -140,30 +148,37 @@
     // This needs to be reworked, when more services get added,
     // Might need a state machine or add a framework utility class,
     private Handler mHandler = new Handler() {
-        private boolean mGeofenceHardwareConnected = false;
-        private boolean mGeofenceProviderConnected = false;
-
 
         @Override
         public void handleMessage(Message msg) {
             switch (msg.what) {
                 case GEOFENCE_PROVIDER_CONNECTED:
-                    mGeofenceProviderConnected = true;
-                    if (mGeofenceHardwareConnected) {
-                        setGeofenceHardwareInProvider();
+                    synchronized (mLock) {
+                        if (mGeofenceHardware != null) {
+                            setGeofenceHardwareInProviderLocked();
+                        }
+                        // else: the geofence provider will be notified when the connection to
+                        // GeofenceHardwareService is established.
                     }
                     break;
                 case GEOFENCE_HARDWARE_CONNECTED:
-                    setGpsGeofence();
-                    setFusedGeofence();
-                    mGeofenceHardwareConnected = true;
-                    if (mGeofenceProviderConnected) {
-                        setGeofenceHardwareInProvider();
+                    synchronized (mLock) {
+                        // Theoretically this won't happen because once the GeofenceHardwareService
+                        // is connected to, we won't lose connection to it because it's a system
+                        // service. But this check does make the code more robust.
+                        if (mGeofenceHardware != null) {
+                            setGpsGeofenceLocked();
+                            setFusedGeofenceLocked();
+                            setGeofenceHardwareInProviderLocked();
+                        }
                     }
                     break;
                 case GEOFENCE_HARDWARE_DISCONNECTED:
-                    mGeofenceHardwareConnected = false;
-                    setGeofenceHardwareInProvider();
+                    synchronized (mLock) {
+                        if (mGeofenceHardware == null) {
+                            setGeofenceHardwareInProviderLocked();
+                        }
+                    }
                     break;
             }
         }
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java
index 4942141..686b64e 100755
--- a/services/java/com/android/server/pm/PackageManagerService.java
+++ b/services/java/com/android/server/pm/PackageManagerService.java
@@ -122,6 +122,7 @@
 import android.util.EventLog;
 import android.util.Log;
 import android.util.LogPrinter;
+import android.util.PrintStreamPrinter;
 import android.util.Slog;
 import android.util.SparseArray;
 import android.util.Xml;
@@ -2595,6 +2596,37 @@
         return chooseBestActivity(intent, resolvedType, flags, query, userId);
     }
 
+    @Override
+    public void setLastChosenActivity(Intent intent, String resolvedType, int flags,
+            IntentFilter filter, int match, ComponentName activity) {
+        final int userId = UserHandle.getCallingUserId();
+        if (DEBUG_PREFERRED) {
+            Log.v(TAG, "setLastChosenActivity intent=" + intent
+                + " resolvedType=" + resolvedType
+                + " flags=" + flags
+                + " filter=" + filter
+                + " match=" + match
+                + " activity=" + activity);
+            filter.dump(new PrintStreamPrinter(System.out), "    ");
+        }
+        intent.setComponent(null);
+        List<ResolveInfo> query = queryIntentActivities(intent, resolvedType, flags, userId);
+        // Find any earlier preferred or last chosen entries and nuke them
+        findPreferredActivity(intent, resolvedType,
+                flags, query, 0, false, true, userId);
+        // Add the new activity as the last chosen for this filter
+        addPreferredActivityInternal(filter, match, null, activity, false, userId);
+    }
+
+    @Override
+    public ResolveInfo getLastChosenActivity(Intent intent, String resolvedType, int flags) {
+        final int userId = UserHandle.getCallingUserId();
+        if (DEBUG_PREFERRED) Log.v(TAG, "Querying last chosen activity for " + intent);
+        List<ResolveInfo> query = queryIntentActivities(intent, resolvedType, flags, userId);
+        return findPreferredActivity(intent, resolvedType, flags, query, 0,
+                false, false, userId);
+    }
+
     private ResolveInfo chooseBestActivity(Intent intent, String resolvedType,
             int flags, List<ResolveInfo> query, int userId) {
         if (query != null) {
@@ -2620,7 +2652,7 @@
                 // If we have saved a preference for a preferred activity for
                 // this Intent, use that.
                 ResolveInfo ri = findPreferredActivity(intent, resolvedType,
-                        flags, query, r0.priority, userId);
+                        flags, query, r0.priority, true, false, userId);
                 if (ri != null) {
                     return ri;
                 }
@@ -2639,16 +2671,18 @@
         return null;
     }
 
-    ResolveInfo findPreferredActivity(Intent intent, String resolvedType,
-            int flags, List<ResolveInfo> query, int priority, int userId) {
+    ResolveInfo findPreferredActivity(Intent intent, String resolvedType, int flags,
+            List<ResolveInfo> query, int priority, boolean always,
+            boolean removeMatches, int userId) {
         if (!sUserManager.exists(userId)) return null;
         // writer
         synchronized (mPackages) {
             if (intent.getSelector() != null) {
-                intent = intent.getSelector(); 
+                intent = intent.getSelector();
             }
             if (DEBUG_PREFERRED) intent.addFlags(Intent.FLAG_DEBUG_LOG_RESOLUTION);
             PreferredIntentResolver pir = mSettings.mPreferredActivities.get(userId);
+            // Get the list of preferred activities that handle the intent
             List<PreferredActivity> prefs = pir != null
                     ? pir.queryIntent(intent, resolvedType,
                             (flags & PackageManager.MATCH_DEFAULT_ONLY) != 0, userId)
@@ -2683,7 +2717,25 @@
                 final int M = prefs.size();
                 for (int i=0; i<M; i++) {
                     final PreferredActivity pa = prefs.get(i);
+                    if (DEBUG_PREFERRED) {
+                        Log.v(TAG, "Checking PreferredActivity ds="
+                                + (pa.countDataSchemes() > 0 ? pa.getDataScheme(0) : "<none>")
+                                + "\n  component=" + pa.mPref.mComponent);
+                        pa.dump(new PrintStreamPrinter(System.out), "  ");
+                    }
                     if (pa.mPref.mMatch != match) {
+                        if (DEBUG_PREFERRED) {
+                            Log.v(TAG, "Skipping bad match "
+                                    + Integer.toHexString(pa.mPref.mMatch));
+                        }
+                        continue;
+                    }
+                    // If it's not an "always" type preferred activity and that's what we're
+                    // looking for, skip it.
+                    if (always && !pa.mPref.mAlways) {
+                        if (DEBUG_PREFERRED) {
+                            Log.v(TAG, "Skipping lastChosen entry");
+                        }
                         continue;
                     }
                     final ActivityInfo ai = getActivityInfo(pa.mPref.mComponent,
@@ -2717,22 +2769,41 @@
                             continue;
                         }
 
-                        // Okay we found a previously set preferred app.
+                        if (removeMatches) {
+                            pir.removeFilter(pa);
+                            if (DEBUG_PREFERRED) {
+                                Log.v(TAG, "Removing match " + pa.mPref.mComponent);
+                            }
+                            break;
+                        }
+
+                        // Okay we found a previously set preferred or last chosen app.
                         // If the result set is different from when this
                         // was created, we need to clear it and re-ask the
-                        // user their preference.
-                        if (!pa.mPref.sameSet(query, priority)) {
+                        // user their preference, if we're looking for an "always" type entry.
+                        if (always && !pa.mPref.sameSet(query, priority)) {
                             Slog.i(TAG, "Result set changed, dropping preferred activity for "
                                     + intent + " type " + resolvedType);
+                            if (DEBUG_PREFERRED) {
+                                Log.v(TAG, "Removing preferred activity since set changed "
+                                        + pa.mPref.mComponent);
+                            }
                             pir.removeFilter(pa);
+                            // Re-add the filter as a "last chosen" entry (!always)
+                            PreferredActivity lastChosen = new PreferredActivity(
+                                    pa, pa.mPref.mMatch, null, pa.mPref.mComponent, false);
+                            pir.addFilter(lastChosen);
+                            mSettings.writePackageRestrictionsLPr(userId);
                             return null;
                         }
 
-                        // Yay!
+                        // Yay! Either the set matched or we're looking for the last chosen
+                        mSettings.writePackageRestrictionsLPr(userId);
                         return ri;
                     }
                 }
             }
+            mSettings.writePackageRestrictionsLPr(userId);
         }
         return null;
     }
@@ -9606,9 +9677,14 @@
         }
         return Build.VERSION_CODES.CUR_DEVELOPMENT;
     }
-    
+
     public void addPreferredActivity(IntentFilter filter, int match,
             ComponentName[] set, ComponentName activity, int userId) {
+        addPreferredActivityInternal(filter, match, set, activity, true, userId);
+    }
+
+    private void addPreferredActivityInternal(IntentFilter filter, int match,
+            ComponentName[] set, ComponentName activity, boolean always, int userId) {
         // writer
         int callingUid = Binder.getCallingUid();
         enforceCrossUserPermission(callingUid, userId, true, "add preferred activity");
@@ -9629,7 +9705,7 @@
             Slog.i(TAG, "Adding preferred activity " + activity + " for user " + userId + " :");
             filter.dump(new LogPrinter(Log.INFO, TAG), "  ");
             mSettings.editPreferredActivitiesLPw(userId).addFilter(
-                    new PreferredActivity(filter, match, set, activity));
+                    new PreferredActivity(filter, match, set, activity, always));
             mSettings.writePackageRestrictionsLPr(userId);
         }
     }
@@ -9691,7 +9767,7 @@
                     }
                 }
             }
-            addPreferredActivity(filter, match, set, activity, callingUserId);
+            addPreferredActivityInternal(filter, match, set, activity, true, callingUserId);
         }
     }
 
@@ -9736,8 +9812,11 @@
             Iterator<PreferredActivity> it = pir.filterIterator();
             while (it.hasNext()) {
                 PreferredActivity pa = it.next();
+                // Mark entry for removal only if it matches the package name
+                // and the entry is of type "always".
                 if (packageName == null ||
-                        pa.mPref.mComponent.getPackageName().equals(packageName)) {
+                        (pa.mPref.mComponent.getPackageName().equals(packageName)
+                                && pa.mPref.mAlways)) {
                     if (removed == null) {
                         removed = new ArrayList<PreferredActivity>();
                     }
@@ -9781,7 +9860,8 @@
                 while (it.hasNext()) {
                     final PreferredActivity pa = it.next();
                     if (packageName == null
-                            || pa.mPref.mComponent.getPackageName().equals(packageName)) {
+                            || (pa.mPref.mComponent.getPackageName().equals(packageName)
+                                    && pa.mPref.mAlways)) {
                         if (outFilters != null) {
                             outFilters.add(new IntentFilter(pa));
                         }
diff --git a/services/java/com/android/server/pm/PreferredActivity.java b/services/java/com/android/server/pm/PreferredActivity.java
index c655bb1..963cbe4 100644
--- a/services/java/com/android/server/pm/PreferredActivity.java
+++ b/services/java/com/android/server/pm/PreferredActivity.java
@@ -33,13 +33,13 @@
     private static final String TAG = "PreferredActivity";
 
     private static final boolean DEBUG_FILTERS = false;
-    static final String ATTR_USER_ID = "userId";
 
     final PreferredComponent mPref;
 
-    PreferredActivity(IntentFilter filter, int match, ComponentName[] set, ComponentName activity) {
+    PreferredActivity(IntentFilter filter, int match, ComponentName[] set, ComponentName activity,
+            boolean always) {
         super(filter);
-        mPref = new PreferredComponent(this, match, set, activity);
+        mPref = new PreferredComponent(this, match, set, activity, always);
     }
 
     PreferredActivity(XmlPullParser parser) throws XmlPullParserException, IOException {
diff --git a/services/java/com/android/server/pm/PreferredIntentResolver.java b/services/java/com/android/server/pm/PreferredIntentResolver.java
index 7fe6a05..bce24d7 100644
--- a/services/java/com/android/server/pm/PreferredIntentResolver.java
+++ b/services/java/com/android/server/pm/PreferredIntentResolver.java
@@ -26,10 +26,12 @@
     protected PreferredActivity[] newArray(int size) {
         return new PreferredActivity[size];
     }
+
     @Override
     protected boolean isPackageForFilter(String packageName, PreferredActivity filter) {
         return packageName.equals(filter.mPref.mComponent.getPackageName());
     }
+
     @Override
     protected void dumpFilter(PrintWriter out, String prefix,
             PreferredActivity filter) {
diff --git a/services/java/com/android/server/pm/Settings.java b/services/java/com/android/server/pm/Settings.java
index e18202b..ff1128d 100644
--- a/services/java/com/android/server/pm/Settings.java
+++ b/services/java/com/android/server/pm/Settings.java
@@ -2071,7 +2071,7 @@
                 if (path != null) {
                     filter.addDataPath(path);
                 }
-                PreferredActivity pa = new PreferredActivity(filter, match, set, cn);
+                PreferredActivity pa = new PreferredActivity(filter, match, set, cn, true);
                 editPreferredActivitiesLPw(userId).addFilter(pa);
             } else if (!haveNonSys) {
                 Slog.w(TAG, "No component found for default preferred activity " + cn);
diff --git a/services/java/com/android/server/pm/UserManagerService.java b/services/java/com/android/server/pm/UserManagerService.java
index bb37917..af60f84 100644
--- a/services/java/com/android/server/pm/UserManagerService.java
+++ b/services/java/com/android/server/pm/UserManagerService.java
@@ -26,8 +26,6 @@
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.RestrictionEntry;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
@@ -42,7 +40,6 @@
 import android.os.IUserManager;
 import android.os.Process;
 import android.os.RemoteException;
-import android.os.SystemClock;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.util.AtomicFile;
@@ -50,7 +47,6 @@
 import android.util.Slog;
 import android.util.SparseArray;
 import android.util.SparseBooleanArray;
-import android.util.SparseLongArray;
 import android.util.TimeUtils;
 import android.util.Xml;
 
@@ -163,8 +159,6 @@
     private boolean mGuestEnabled;
     private int mNextSerialNumber;
     private int mUserVersion = 0;
-    // Temporary cleanup variable, this and associated code should be removed later.
-    private boolean mUnblockAppsTemp;
 
     private static UserManagerService sInstance;
 
@@ -241,8 +235,6 @@
         final Context context = ActivityThread.systemMain().getSystemContext();
         mUserPackageMonitor.register(context,
                 null, UserHandle.ALL, false);
-        context.registerReceiver(mBootCompletedReceiver,
-                new IntentFilter(Intent.ACTION_BOOT_COMPLETED));
         userForeground(UserHandle.USER_OWNER);
     }
 
@@ -502,12 +494,6 @@
         return mUserIds;
     }
 
-    private void readUserList() {
-        synchronized (mPackagesLock) {
-            readUserListLocked();
-        }
-    }
-
     private void readUserListLocked() {
         mGuestEnabled = false;
         if (!mUserListFile.exists()) {
@@ -601,20 +587,8 @@
             userVersion = 2;
         }
 
-        if (userVersion < 3) {
-            // Remove restrictions PIN for all users
-            for (int i = 0; i < mRestrictionsPinStates.size(); i++) {
-                int userId = mRestrictionsPinStates.keyAt(i);
-                RestrictionsPinState state = mRestrictionsPinStates.valueAt(i);
-                if (state.salt != 0 && state.pinHash != null) {
-                    removeRestrictionsForUser(userId, false);
-                }
-            }
-            userVersion = 3;
-        }
 
         if (userVersion < 4) {
-            mUnblockAppsTemp = true;
             userVersion = 4;
         }
 
@@ -634,6 +608,7 @@
                 UserInfo.FLAG_ADMIN | UserInfo.FLAG_PRIMARY | UserInfo.FLAG_INITIALIZED);
         mUsers.put(0, primary);
         mNextSerialNumber = MIN_USER_ID;
+        mUserVersion = USER_VERSION;
 
         Bundle restrictions = new Bundle();
         mUserRestrictions.append(UserHandle.USER_OWNER, restrictions);
@@ -1588,19 +1563,4 @@
             }
         }
     };
-
-    private BroadcastReceiver mBootCompletedReceiver = new BroadcastReceiver() {
-        @Override public void onReceive(Context context, Intent intent) {
-            // This code block can be removed after cleanup
-            if (mUnblockAppsTemp) {
-                synchronized (mPackagesLock) {
-                    // Unblock apps due to removal of restrictions feature
-                    for (int i = 0; i < mUsers.size(); i++) {
-                        int userId = mUsers.keyAt(i);
-                        unblockAllAppsForUser(userId);
-                    }
-                }
-            }
-        }
-    };
 }
diff --git a/services/java/com/android/server/print/PrintManagerService.java b/services/java/com/android/server/print/PrintManagerService.java
index 671a5dc..2563b58 100644
--- a/services/java/com/android/server/print/PrintManagerService.java
+++ b/services/java/com/android/server/print/PrintManagerService.java
@@ -254,7 +254,7 @@
     }
 
     @Override
-    public void requestPrinterUpdate(PrinterId printerId, int userId) {
+    public void validatePrinters(List<PrinterId> printerIds, int userId) {
         final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
         final UserState userState;
         synchronized (mLock) {
@@ -262,7 +262,37 @@
         }
         final long identity = Binder.clearCallingIdentity();
         try {
-            userState.requestPrinterUpdate(printerId);
+            userState.validatePrinters(printerIds);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
+    public void startPrinterStateTracking(PrinterId printerId, int userId) {
+        final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+        final UserState userState;
+        synchronized (mLock) {
+            userState = getOrCreateUserStateLocked(resolvedUserId);
+        }
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            userState.startPrinterStateTracking(printerId);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
+    public void stopPrinterStateTracking(PrinterId printerId, int userId) {
+        final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+        final UserState userState;
+        synchronized (mLock) {
+            userState = getOrCreateUserStateLocked(resolvedUserId);
+        }
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            userState.stopPrinterStateTracking(printerId);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -432,10 +462,12 @@
         if (appId == callingAppId) {
             return appId;
         }
-        if (mContext.checkCallingPermission(Manifest.permission.ACCESS_ALL_PRINT_JOBS)
+        if (mContext.checkCallingPermission(
+                "com.android.printspooler.permission.ACCESS_ALL_PRINT_JOBS")
                 != PackageManager.PERMISSION_GRANTED) {
             throw new SecurityException("Call from app " + callingAppId + " as app "
-                    + appId + " without permission ACCESS_ALL_PRINT_JOBS");
+                    + appId + " without com.android.printspooler.permission"
+                    + ".ACCESS_ALL_PRINT_JOBS");
         }
         return appId;
     }
diff --git a/services/java/com/android/server/print/RemotePrintService.java b/services/java/com/android/server/print/RemotePrintService.java
index 7f4b343..14af9d8 100644
--- a/services/java/com/android/server/print/RemotePrintService.java
+++ b/services/java/com/android/server/print/RemotePrintService.java
@@ -25,6 +25,7 @@
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.IBinder.DeathRecipient;
+import android.os.AsyncTask;
 import android.os.Looper;
 import android.os.Message;
 import android.os.ParcelFileDescriptor;
@@ -38,6 +39,8 @@
 import android.printservice.IPrintServiceClient;
 import android.util.Slog;
 
+import com.android.internal.R;
+
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 import java.util.List;
@@ -121,6 +124,36 @@
         mHasPrinterDiscoverySession = false;
         mPendingCommands.clear();
         ensureUnbound();
+
+        // Makes sure all active print jobs are failed since the service
+        // just died. Do this off the main thread since we do to allow
+        // calls into the spooler on the main thread.
+        new AsyncTask<Void, Void, Void>() {
+            @Override
+            protected Void doInBackground(Void... params) {
+                failAllActivePrintJobs();
+                return null;
+            }
+        }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (Void[]) null);
+    }
+
+    private void failAllActivePrintJobs() {
+        List<PrintJobInfo> printJobs = mSpooler.getPrintJobInfos(mComponentName,
+                PrintJobInfo.STATE_ANY_ACTIVE, PrintManager.APP_ID_ANY);
+        if (printJobs == null) {
+            return;
+        }
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            final int printJobCount = printJobs.size();
+            for (int i = 0; i < printJobCount; i++) {
+                PrintJobInfo printJob = printJobs.get(i);
+                mSpooler.setPrintJobState(printJob.getId(), PrintJobInfo.STATE_FAILED,
+                        mContext.getString(R.string.reason_unknown));
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
     }
 
     private void handleOnAllPrintJobsHandled() {
@@ -308,29 +341,83 @@
         }
     }
 
-    public void requestPrinterUpdate(PrinterId printerId) {
-        mHandler.obtainMessage(MyHandler.MSG_REQUEST_PRINTER_UPDATE,
-                printerId).sendToTarget();
+    public void validatePrinters(List<PrinterId> printerIds) {
+        mHandler.obtainMessage(MyHandler.MSG_VALIDATE_PRINTERS,
+                printerIds).sendToTarget();
     }
 
-    private void handleRequestPrinterUpdate(final PrinterId printerId) {
+    private void handleValidatePrinters(final List<PrinterId> printerIds) {
         throwIfDestroyed();
         if (!isBound()) {
             ensureBound();
             mPendingCommands.add(new Runnable() {
                 @Override
                 public void run() {
-                    handleRequestPrinterUpdate(printerId);
+                    handleValidatePrinters(printerIds);
                 }
             });
         } else {
             if (DEBUG) {
-                Slog.i(LOG_TAG, "[user: " + mUserId + "] requestPrinterUpdate()");
+                Slog.i(LOG_TAG, "[user: " + mUserId + "] handleValidatePrinters()");
             }
             try {
-                mPrintService.requestPrinterUpdate(printerId);
+                mPrintService.validatePrinters(printerIds);
             } catch (RemoteException re) {
-                Slog.e(LOG_TAG, "Error requesting a printer update.", re);
+                Slog.e(LOG_TAG, "Error requesting printers validation.", re);
+            }
+        }
+    }
+
+    public void startPrinterStateTracking(PrinterId printerId) {
+        mHandler.obtainMessage(MyHandler.MSG_START_PRINTER_STATE_TRACKING,
+                printerId).sendToTarget();
+    }
+
+    private void handleStartPrinterStateTracking(final PrinterId printerId) {
+        throwIfDestroyed();
+        if (!isBound()) {
+            ensureBound();
+            mPendingCommands.add(new Runnable() {
+                @Override
+                public void run() {
+                    handleStartPrinterStateTracking(printerId);
+                }
+            });
+        } else {
+            if (DEBUG) {
+                Slog.i(LOG_TAG, "[user: " + mUserId + "] handleStartPrinterTracking()");
+            }
+            try {
+                mPrintService.startPrinterStateTracking(printerId);
+            } catch (RemoteException re) {
+                Slog.e(LOG_TAG, "Error requesting start printer tracking.", re);
+            }
+        }
+    }
+
+    public void stopPrinterStateTracking(PrinterId printerId) {
+        mHandler.obtainMessage(MyHandler.MSG_STOP_PRINTER_STATE_TRACKING,
+                printerId).sendToTarget();
+    }
+
+    private void handleStopPrinterStateTracking(final PrinterId printerId) {
+        throwIfDestroyed();
+        if (!isBound()) {
+            ensureBound();
+            mPendingCommands.add(new Runnable() {
+                @Override
+                public void run() {
+                    handleStopPrinterStateTracking(printerId);
+                }
+            });
+        } else {
+            if (DEBUG) {
+                Slog.i(LOG_TAG, "[user: " + mUserId + "] handleStopPrinterTracking()");
+            }
+            try {
+                mPrintService.stopPrinterStateTracking(printerId);
+            } catch (RemoteException re) {
+                Slog.e(LOG_TAG, "Error requesting stop printer tracking.", re);
             }
         }
     }
@@ -417,12 +504,14 @@
         public static final int MSG_DESTROY_PRINTER_DISCOVERY_SESSION = 2;
         public static final int MSG_START_PRINTER_DISCOVERY = 3;
         public static final int MSG_STOP_PRINTER_DISCOVERY = 4;
-        public static final int MSG_REQUEST_PRINTER_UPDATE = 5;
-        public static final int MSG_ON_ALL_PRINT_JOBS_HANDLED = 6;
-        public static final int MSG_ON_REQUEST_CANCEL_PRINT_JOB = 7;
-        public static final int MSG_ON_PRINT_JOB_QUEUED = 8;
-        public static final int MSG_DESTROY = 9;
-        public static final int MSG_BINDER_DIED = 10;
+        public static final int MSG_VALIDATE_PRINTERS = 5;
+        public static final int MSG_START_PRINTER_STATE_TRACKING = 6;
+        public static final int MSG_STOP_PRINTER_STATE_TRACKING = 7;
+        public static final int MSG_ON_ALL_PRINT_JOBS_HANDLED = 8;
+        public static final int MSG_ON_REQUEST_CANCEL_PRINT_JOB = 9;
+        public static final int MSG_ON_PRINT_JOB_QUEUED = 10;
+        public static final int MSG_DESTROY = 11;
+        public static final int MSG_BINDER_DIED = 12;
 
         public MyHandler(Looper looper) {
             super(looper, null, false);
@@ -449,9 +538,19 @@
                     handleStopPrinterDiscovery();
                 } break;
 
-                case MSG_REQUEST_PRINTER_UPDATE: {
+                case MSG_VALIDATE_PRINTERS: {
+                    List<PrinterId> printerIds = (List<PrinterId>) message.obj;
+                    handleValidatePrinters(printerIds);
+                } break;
+
+                case MSG_START_PRINTER_STATE_TRACKING: {
                     PrinterId printerId = (PrinterId) message.obj;
-                    handleRequestPrinterUpdate(printerId);
+                    handleStartPrinterStateTracking(printerId);
+                } break;
+
+                case MSG_STOP_PRINTER_STATE_TRACKING: {
+                    PrinterId printerId = (PrinterId) message.obj;
+                    handleStopPrinterStateTracking(printerId);
                 } break;
 
                 case MSG_ON_ALL_PRINT_JOBS_HANDLED: {
diff --git a/services/java/com/android/server/print/UserState.java b/services/java/com/android/server/print/UserState.java
index c979a11..4a1b96b 100644
--- a/services/java/com/android/server/print/UserState.java
+++ b/services/java/com/android/server/print/UserState.java
@@ -19,8 +19,12 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.Editor;
+import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
 import android.os.Build;
 import android.os.Handler;
 import android.os.IBinder;
@@ -46,6 +50,7 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -63,6 +68,11 @@
 
     private static final char COMPONENT_NAME_SEPARATOR = ':';
 
+    private static final String SHARED_PREFERENCES_FILE = "shared_prefs";
+
+    private static final String KEY_SYSTEM_PRINT_SERVICES_ENABLED =
+            "KEY_SYSTEM_PRINT_SERVICES_ENABLED";
+
     private final SimpleStringSplitter mStringColonSplitter =
             new SimpleStringSplitter(COMPONENT_NAME_SEPARATOR);
 
@@ -95,6 +105,7 @@
         mUserId = userId;
         mLock = lock;
         mSpooler = new RemotePrintSpooler(context, userId, this);
+        enableSystemPrintServicesOnce();
     }
 
     @Override
@@ -190,7 +201,7 @@
         }
     }
 
-    public void requestPrinterUpdate(PrinterId printerId) {
+    public void validatePrinters(List<PrinterId> printerIds) {
         synchronized (mLock) {
             throwIfDestroyedLocked();
             // No services - nothing to do.
@@ -202,7 +213,39 @@
                 return;
             }
             // Request an updated.
-            mPrinterDiscoverySession.requestPrinterUpdateLocked(printerId);
+            mPrinterDiscoverySession.validatePrintersLocked(printerIds);
+        }
+    }
+
+    public void startPrinterStateTracking(PrinterId printerId) {
+        synchronized (mLock) {
+            throwIfDestroyedLocked();
+            // No services - nothing to do.
+            if (mActiveServices.isEmpty()) {
+                return;
+            }
+            // No session - nothing to do.
+            if (mPrinterDiscoverySession == null) {
+                return;
+            }
+            // Request start tracking the printer.
+            mPrinterDiscoverySession.startPrinterStateTrackingLocked(printerId);
+        }
+    }
+
+    public void stopPrinterStateTracking(PrinterId printerId) {
+        synchronized (mLock) {
+            throwIfDestroyedLocked();
+            // No services - nothing to do.
+            if (mActiveServices.isEmpty()) {
+                return;
+            }
+            // No session - nothing to do.
+            if (mPrinterDiscoverySession == null) {
+                return;
+            }
+            // Request stop tracking the printer.
+            mPrinterDiscoverySession.stopPrinterStateTrackingLocked(printerId);
         }
     }
 
@@ -365,6 +408,36 @@
         return false;
     }
 
+    private void enableSystemPrintServicesOnce() {
+        SharedPreferences preferences = mContext.getSharedPreferences(
+                SHARED_PREFERENCES_FILE, Context.MODE_PRIVATE);
+        if (preferences.getInt(KEY_SYSTEM_PRINT_SERVICES_ENABLED, 0) == 0) {
+            Editor editor = preferences.edit();
+            editor.putInt(KEY_SYSTEM_PRINT_SERVICES_ENABLED, 1);
+            editor.commit();
+
+            readInstalledPrintServicesLocked();
+
+            StringBuilder builder = new StringBuilder();
+
+            final int serviceCount = mInstalledServices.size();
+            for (int i = 0; i < serviceCount; i++) {
+                ServiceInfo serviceInfo = mInstalledServices.get(i).getResolveInfo().serviceInfo;
+                if ((serviceInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
+                    ComponentName serviceName = new ComponentName(
+                            serviceInfo.packageName, serviceInfo.name);
+                    if (builder.length() > 0) {
+                        builder.append(":");
+                    }
+                    builder.append(serviceName.flattenToString());
+                }
+            }
+
+            Settings.Secure.putStringForUser(mContext.getContentResolver(),
+                    Settings.Secure.ENABLED_PRINT_SERVICES, builder.toString(), mUserId);
+        }
+    }
+
     private void onConfigurationChangedLocked() {
         final int installedCount = mInstalledServices.size();
         for (int i = 0; i < installedCount; i++) {
@@ -415,6 +488,8 @@
 
         private final List<IBinder> mStartedPrinterDiscoveryTokens = new ArrayList<IBinder>();
 
+        private final List<PrinterId> mStateTrackedPrinters = new ArrayList<PrinterId>();
+
         private final Handler mHandler;
 
         private boolean mIsDestroyed;
@@ -461,14 +536,10 @@
             }
 
             // If printer discovery is ongoing and the start request has a list
-            // of printer to be checked, then we just request refreshing each of
-            // them rather making another start discovery request.
+            // of printer to be checked, then we just request validating them.
             if (!mStartedPrinterDiscoveryTokens.isEmpty()
                     && priorityList != null && !priorityList.isEmpty()) {
-                final int priorityIdCount = priorityList.size();
-                for (int i = 0; i < priorityIdCount; i++) {
-                    requestPrinterUpdate(priorityList.get(i));
-                }
+                validatePrinters(priorityList);
                 return;
             }
 
@@ -508,22 +579,99 @@
                     .sendToTarget();
         }
 
-        public void requestPrinterUpdateLocked(PrinterId printerId) {
+        public void validatePrintersLocked(List<PrinterId> printerIds) {
             if (mIsDestroyed) {
-                Log.w(LOG_TAG, "Not updating pritner - session destroyed");
+                Log.w(LOG_TAG, "Not validating pritners - session destroyed");
                 return;
             }
-            RemotePrintService service = mActiveServices.get(printerId.getServiceName());
-            if (service != null) {
-                SomeArgs args = SomeArgs.obtain();
-                args.arg1 = service;
-                args.arg2 = printerId;
-                mHandler.obtainMessage(SessionHandler
-                        .MSG_REQUEST_PRINTER_UPDATE, args)
-                        .sendToTarget();
+
+            List<PrinterId> remainingList = new ArrayList<PrinterId>(printerIds);
+            while (!remainingList.isEmpty()) {
+                Iterator<PrinterId> iterator = remainingList.iterator();
+                // Gather the printers per service and request a validation.
+                List<PrinterId> updateList = new ArrayList<PrinterId>();
+                ComponentName serviceName = null;
+                while (iterator.hasNext()) {
+                    PrinterId printerId = iterator.next();
+                    if (updateList.isEmpty()) {
+                        updateList.add(printerId);
+                        serviceName = printerId.getServiceName();
+                        iterator.remove();
+                    } else if (printerId.getServiceName().equals(serviceName)) {
+                        updateList.add(printerId);
+                        iterator.remove();
+                    }
+                }
+                // Schedule a notification of the service.
+                RemotePrintService service = mActiveServices.get(serviceName);
+                if (service != null) {
+                    SomeArgs args = SomeArgs.obtain();
+                    args.arg1 = service;
+                    args.arg2 = updateList;
+                    mHandler.obtainMessage(SessionHandler
+                            .MSG_VALIDATE_PRINTERS, args)
+                            .sendToTarget();
+                }
             }
         }
 
+        public final void startPrinterStateTrackingLocked(PrinterId printerId) {
+            if (mIsDestroyed) {
+                Log.w(LOG_TAG, "Not starting printer state tracking - session destroyed");
+                return;
+            }
+            // If printer discovery is not started - nothing to do.
+            if (mStartedPrinterDiscoveryTokens.isEmpty()) {
+                return;
+            }
+            final boolean containedPrinterId = mStateTrackedPrinters.contains(printerId);
+            // Keep track of the number of requests to track this one.
+            mStateTrackedPrinters.add(printerId);
+            // If we were tracking this printer - nothing to do.
+            if (containedPrinterId) {
+                return;
+            }
+            // No service - nothing to do.
+            RemotePrintService service = mActiveServices.get(printerId.getServiceName());
+            if (service == null) {
+                return;
+            }
+            // Ask the service to start tracking.
+            SomeArgs args = SomeArgs.obtain();
+            args.arg1 = service;
+            args.arg2 = printerId;
+            mHandler.obtainMessage(SessionHandler
+                    .MSG_START_PRINTER_STATE_TRACKING, args)
+                    .sendToTarget();
+        }
+
+        public final void stopPrinterStateTrackingLocked(PrinterId printerId) {
+            if (mIsDestroyed) {
+                Log.w(LOG_TAG, "Not stopping printer state tracking - session destroyed");
+                return;
+            }
+            // If printer discovery is not started - nothing to do.
+            if (mStartedPrinterDiscoveryTokens.isEmpty()) {
+                return;
+            }
+            // If we did not track this printer - nothing to do.
+            if (!mStateTrackedPrinters.remove(printerId)) {
+                return;
+            }
+            // No service - nothing to do.
+            RemotePrintService service = mActiveServices.get(printerId.getServiceName());
+            if (service == null) {
+                return;
+            }
+            // Ask the service to start tracking.
+            SomeArgs args = SomeArgs.obtain();
+            args.arg1 = service;
+            args.arg2 = printerId;
+            mHandler.obtainMessage(SessionHandler
+                    .MSG_STOP_PRINTER_STATE_TRACKING, args)
+                    .sendToTarget();
+        }
+
         public void onDestroyed() {
             /* do nothing */
         }
@@ -533,6 +681,12 @@
                 Log.w(LOG_TAG, "Not destroying - session destroyed");
                 return;
             }
+            // Make sure printer tracking is stopped.
+            final int printerCount = mStateTrackedPrinters.size();
+            for (int i = 0; i < printerCount; i++) {
+                PrinterId printerId = mStateTrackedPrinters.get(i);
+                stopPrinterStateTracking(printerId);
+            }
             // Make sure discovery is stopped.
             final int observerCount = mStartedPrinterDiscoveryTokens.size();
             for (int i = 0; i < observerCount; i++) {
@@ -744,9 +898,19 @@
             }
         }
 
-        private void handleRequestPrinterUpdate(RemotePrintService service,
+        private void handleValidatePrinters(RemotePrintService service,
+                List<PrinterId> printerIds) {
+            service.validatePrinters(printerIds);
+        }
+
+        private void handleStartPrinterStateTracking(RemotePrintService service,
                 PrinterId printerId) {
-            service.requestPrinterUpdate(printerId);
+            service.startPrinterStateTracking(printerId);
+        }
+
+        private void handleStopPrinterStateTracking(RemotePrintService service,
+                PrinterId printerId) {
+            service.stopPrinterStateTracking(printerId);
         }
 
         private void handlePrintersAdded(IPrinterDiscoveryObserver observer,
@@ -804,7 +968,9 @@
             public static final int MSG_DISPATCH_DESTROY_PRINTER_DISCOVERY_SESSION = 9;
             public static final int MSG_DISPATCH_START_PRINTER_DISCOVERY = 10;
             public static final int MSG_DISPATCH_STOP_PRINTER_DISCOVERY = 11;
-            public static final int MSG_REQUEST_PRINTER_UPDATE = 12;
+            public static final int MSG_VALIDATE_PRINTERS = 12;
+            public static final int MSG_START_PRINTER_STATE_TRACKING = 13;
+            public static final int MSG_STOP_PRINTER_STATE_TRACKING = 14;
 
             SessionHandler(Looper looper) {
                 super(looper, null, false);
@@ -878,13 +1044,29 @@
                         handleDispatchStopPrinterDiscovery(services);
                     } break;
 
-                    case MSG_REQUEST_PRINTER_UPDATE: {
+                    case MSG_VALIDATE_PRINTERS: {
+                        SomeArgs args = (SomeArgs) message.obj;
+                        RemotePrintService service = (RemotePrintService) args.arg1;
+                        List<PrinterId> printerIds = (List<PrinterId>) args.arg2;
+                        args.recycle();
+                        handleValidatePrinters(service, printerIds);
+                    } break;
+
+                    case MSG_START_PRINTER_STATE_TRACKING: {
                         SomeArgs args = (SomeArgs) message.obj;
                         RemotePrintService service = (RemotePrintService) args.arg1;
                         PrinterId printerId = (PrinterId) args.arg2;
                         args.recycle();
-                        handleRequestPrinterUpdate(service, printerId);
+                        handleStartPrinterStateTracking(service, printerId);
                     } break;
+
+                    case MSG_STOP_PRINTER_STATE_TRACKING: {
+                        SomeArgs args = (SomeArgs) message.obj;
+                        RemotePrintService service = (RemotePrintService) args.arg1;
+                        PrinterId printerId = (PrinterId) args.arg2;
+                        args.recycle();
+                        handleStopPrinterStateTracking(service, printerId);
+                    }
                 }
             }
         }
diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java
index 3ae2106..ab429fd 100644
--- a/telephony/java/android/telephony/PhoneNumberUtils.java
+++ b/telephony/java/android/telephony/PhoneNumberUtils.java
@@ -1805,7 +1805,7 @@
         String countryIso;
         CountryDetector detector = (CountryDetector) context.getSystemService(
                 Context.COUNTRY_DETECTOR);
-        if (detector != null) {
+        if (detector != null && detector.detectCountry() != null) {
             countryIso = detector.detectCountry().getCountryIso();
         } else {
             Locale locale = context.getResources().getConfiguration().locale;
diff --git a/telephony/java/com/android/internal/telephony/DctConstants.java b/telephony/java/com/android/internal/telephony/DctConstants.java
index 4f1ae11..c661b00 100644
--- a/telephony/java/com/android/internal/telephony/DctConstants.java
+++ b/telephony/java/com/android/internal/telephony/DctConstants.java
@@ -94,6 +94,8 @@
     public static final int EVENT_DISCONNECT_DC_RETRYING = BASE + 34;
     public static final int EVENT_DATA_SETUP_COMPLETE_ERROR = BASE + 35;
     public static final int CMD_SET_ENABLE_FAIL_FAST_MOBILE_DATA = BASE + 36;
+    public static final int CMD_ENABLE_MOBILE_PROVISIONING = BASE + 37;
+    public static final int CMD_IS_PROVISIONING_APN = BASE + 38;
 
     /***** Constants *****/
 
@@ -113,4 +115,5 @@
     public static final int ENABLED = 1;
 
     public static final String APN_TYPE_KEY = "apnType";
+    public static final String PROVISIONING_URL_KEY = "provisioningUrl";
 }
diff --git a/telephony/java/com/android/internal/telephony/TelephonyIntents.java b/telephony/java/com/android/internal/telephony/TelephonyIntents.java
index 65bdacf..a7baf1c 100644
--- a/telephony/java/com/android/internal/telephony/TelephonyIntents.java
+++ b/telephony/java/com/android/internal/telephony/TelephonyIntents.java
@@ -145,6 +145,29 @@
     public static final String ACTION_ANY_DATA_CONNECTION_STATE_CHANGED
             = "android.intent.action.ANY_DATA_STATE";
 
+    /**
+     * Broadcast Action: Occurs when a data connection connects to a provisioning apn
+     * and is broadcast by the low level data connection code.
+     * The intent will have the following extra values:</p>
+     * <ul>
+     *   <li><em>apn</em> - A string that is the APN associated with this
+     *      connection.</li>
+     *   <li><em>apnType</em> - A string array of APN types associated with
+     *      this connection.  The APN type <code>"*"</code> is a special
+     *      type that means this APN services all types.</li>
+     *   <li><em>linkProperties</em> - The <code>LinkProperties</code> for this APN</li>
+     *   <li><em>linkCapabilities</em> - The <code>linkCapabilities</code> for this APN</li>
+     *   <li><em>iface</em> - A string that is the name of the interface</li>
+     * </ul>
+     *
+     * <p class="note">
+     * Requires the READ_PHONE_STATE permission.
+     *
+     * <p class="note">This is a protected intent that can only be sent
+     * by the system.
+     */
+    public static final String ACTION_DATA_CONNECTION_CONNECTED_TO_PROVISIONING_APN
+            = "android.intent.action.DATA_CONNECTION_CONNECTED_TO_PROVISIONING_APN";
 
     /**
      * Broadcast Action: An attempt to establish a data connection has failed.
diff --git a/tests/DumpRenderTree/Android.mk b/tests/DumpRenderTree/Android.mk
deleted file mode 100644
index 505a436..0000000
--- a/tests/DumpRenderTree/Android.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-LOCAL_PACKAGE_NAME := DumpRenderTree
-
-include $(BUILD_PACKAGE)
diff --git a/tests/DumpRenderTree/AndroidManifest.xml b/tests/DumpRenderTree/AndroidManifest.xml
deleted file mode 100644
index bcb821b..0000000
--- a/tests/DumpRenderTree/AndroidManifest.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-  
-          http://www.apache.org/licenses/LICENSE-2.0
-  
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.dumprendertree">
-    <application android:name="HTMLHostApp">
-        <uses-library android:name="android.test.runner" />
-        <activity android:name="Menu" android:label="Dump Render Tree"
-          android:screenOrientation="portrait"
-          android:theme="@android:style/Theme.Light">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.TEST" />
-            </intent-filter>
-        </activity>
-        <activity android:name="TestShellActivity"
-          android:launchMode="singleTop"
-          android:hardwareAccelerated="true"
-          android:screenOrientation="portrait"
-          android:theme="@android:style/Theme.Light"/>
-        <activity android:name="ReliabilityTestActivity" android:screenOrientation="portrait"
-          android:theme="@android:style/Theme.Light"/>
-    </application>
-
-    <instrumentation android:name=".LayoutTestsAutoRunner"
-        android:targetPackage="com.android.dumprendertree"
-        android:label="Layout test automation runner"
-    />
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.WRITE_SDCARD" />
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-    <uses-sdk android:minSdkVersion="5"
-              android:targetSdkVersion="5" />
-</manifest>
diff --git a/tests/DumpRenderTree/assets/results/layout_tests_crashed.txt b/tests/DumpRenderTree/assets/results/layout_tests_crashed.txt
deleted file mode 100644
index 89439d3..0000000
--- a/tests/DumpRenderTree/assets/results/layout_tests_crashed.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/basic-auth.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/failed-auth.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/cross-origin-authorization.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/cross-origin-no-authorization.html
diff --git a/tests/DumpRenderTree/assets/results/layout_tests_failed.txt b/tests/DumpRenderTree/assets/results/layout_tests_failed.txt
deleted file mode 100644
index 5b64b9a..0000000
--- a/tests/DumpRenderTree/assets/results/layout_tests_failed.txt
+++ /dev/null
@@ -1,1010 +0,0 @@
-/sdcard/android/layout_tests/accessibility/onclick-handlers.html
-/sdcard/android/layout_tests/accessibility/textarea-insertion-point-line-number.html
-/sdcard/android/layout_tests/accessibility/aria-readonly.html
-/sdcard/android/layout_tests/accessibility/radio-button-checkbox-size.html
-/sdcard/android/layout_tests/accessibility/th-as-title-ui.html
-/sdcard/android/layout_tests/accessibility/visible-elements.html
-/sdcard/android/layout_tests/accessibility/iframe-bastardization.html
-/sdcard/android/layout_tests/accessibility/button-press-action.html
-/sdcard/android/layout_tests/accessibility/img-aria-button-alt-tag.html
-/sdcard/android/layout_tests/accessibility/input-image-alt.html
-/sdcard/android/layout_tests/accessibility/radio-button-title-label.html
-/sdcard/android/layout_tests/accessibility/aria-hidden.html
-/sdcard/android/layout_tests/accessibility/secure-textfield-title-ui.html
-/sdcard/android/layout_tests/accessibility/canvas.html
-/sdcard/android/layout_tests/accessibility/textarea-selected-text-range.html
-/sdcard/android/layout_tests/accessibility/language-attribute.html
-/sdcard/android/layout_tests/accessibility/table-nofirstbody.html
-/sdcard/android/layout_tests/accessibility/editable-webarea-context-menu-point.html
-/sdcard/android/layout_tests/accessibility/table-modification-crash.html
-/sdcard/android/layout_tests/accessibility/aria-link-supports-press.html
-/sdcard/android/layout_tests/accessibility/table-notbody.html
-/sdcard/android/layout_tests/accessibility/ignore-spacer-elements.html
-/sdcard/android/layout_tests/accessibility/transformed-element.html
-/sdcard/android/layout_tests/accessibility/aria-disabled.html
-/sdcard/android/layout_tests/accessibility/placeholder.html
-/sdcard/android/layout_tests/accessibility/non-data-table-cell-title-ui-element.html
-/sdcard/android/layout_tests/accessibility/aria-label.html
-/sdcard/android/layout_tests/accessibility/textarea-line-for-index.html
-/sdcard/android/layout_tests/accessibility/nochildren-elements.html
-/sdcard/android/layout_tests/animations/keyframes-to-missing.html
-/sdcard/android/layout_tests/animations/animation-hit-test.html
-/sdcard/android/layout_tests/animations/animation-hit-test-transform.html
-/sdcard/android/layout_tests/animations/animation-controller-drt-api.html
-/sdcard/android/layout_tests/animations/keyframes-from-missing.html
-/sdcard/android/layout_tests/animations/change-keyframes-name.html
-/sdcard/android/layout_tests/animations/change-keyframes.html
-/sdcard/android/layout_tests/editing/style/remove-underline-from-stylesheet.html
-/sdcard/android/layout_tests/editing/style/remove-underline-in-bold.html
-/sdcard/android/layout_tests/editing/style/apply-through-end-of-document.html
-/sdcard/android/layout_tests/editing/inserting/typing-tab-designmode.html
-/sdcard/android/layout_tests/editing/inserting/space-after-removeformat.html
-/sdcard/android/layout_tests/editing/inserting/insert-thai-characters-001.html
-/sdcard/android/layout_tests/editing/inserting/5994480-2.html
-/sdcard/android/layout_tests/editing/execCommand/queryCommandState-01.html
-/sdcard/android/layout_tests/editing/execCommand/4128080-2.html
-/sdcard/android/layout_tests/editing/execCommand/indent-nested-lists-6.html
-/sdcard/android/layout_tests/editing/execCommand/enabling-and-selection.html
-/sdcard/android/layout_tests/editing/execCommand/insert-line-break-no-scroll.html
-/sdcard/android/layout_tests/editing/execCommand/indent-nested-lists-3.html
-/sdcard/android/layout_tests/editing/execCommand/enabling-and-selection-2.html
-/sdcard/android/layout_tests/editing/execCommand/delete-no-scroll.html
-/sdcard/android/layout_tests/editing/execCommand/forward-delete-no-scroll.html
-/sdcard/android/layout_tests/editing/execCommand/switch-list-type.html
-/sdcard/android/layout_tests/editing/execCommand/19089.html
-/sdcard/android/layout_tests/editing/execCommand/outdent-nested-lists-2.html
-/sdcard/android/layout_tests/editing/execCommand/unlink.html
-/sdcard/android/layout_tests/editing/execCommand/remove-list-1.html
-/sdcard/android/layout_tests/editing/execCommand/indent-nested-lists-5.html
-/sdcard/android/layout_tests/editing/execCommand/indent-nested-lists-2.html
-/sdcard/android/layout_tests/editing/execCommand/copy-without-selection.html
-/sdcard/android/layout_tests/editing/execCommand/outdent-nested-lists-4.html
-/sdcard/android/layout_tests/editing/execCommand/outdent-nested-lists-1.html
-/sdcard/android/layout_tests/editing/execCommand/findString-diacriticals.html
-/sdcard/android/layout_tests/editing/execCommand/indent-nested-lists-7.html
-/sdcard/android/layout_tests/editing/execCommand/createLink.html
-/sdcard/android/layout_tests/editing/execCommand/remove-list-items.html
-/sdcard/android/layout_tests/editing/execCommand/indent-nested-lists-4.html
-/sdcard/android/layout_tests/editing/execCommand/5939887.html
-/sdcard/android/layout_tests/editing/execCommand/insertHTML.html
-/sdcard/android/layout_tests/editing/execCommand/convert-style-elements-to-spans.html
-/sdcard/android/layout_tests/editing/execCommand/indent-nested-lists-1.html
-/sdcard/android/layout_tests/editing/execCommand/outdent-nested-lists-3.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-into-anchor-text.html
-/sdcard/android/layout_tests/editing/pasteboard/19644-1.html
-/sdcard/android/layout_tests/editing/pasteboard/copy-crash.html
-/sdcard/android/layout_tests/editing/pasteboard/5665299.html
-/sdcard/android/layout_tests/editing/pasteboard/file-input-files-access.html
-/sdcard/android/layout_tests/editing/pasteboard/get-data-text-plain-drop.html
-/sdcard/android/layout_tests/editing/pasteboard/get-data-text-plain-paste.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-before-blockquote.html
-/sdcard/android/layout_tests/editing/pasteboard/5761530-1.html
-/sdcard/android/layout_tests/editing/pasteboard/copy-in-password-field.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-plaintext-user-select-none.html
-/sdcard/android/layout_tests/editing/pasteboard/drag-image-in-about-blank-frame.html
-/sdcard/android/layout_tests/editing/pasteboard/4744008.html
-/sdcard/android/layout_tests/editing/pasteboard/4922709.html
-/sdcard/android/layout_tests/editing/pasteboard/19644-2.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-013.html
-/sdcard/android/layout_tests/editing/pasteboard/5780697-2.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-double-nested-blockquote-before-blockquote.html
-/sdcard/android/layout_tests/editing/pasteboard/copy-paste-float.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-table-002.html
-/sdcard/android/layout_tests/editing/selection/click-outside-editable-div.html
-/sdcard/android/layout_tests/editing/selection/drag-text-delay.html
-/sdcard/android/layout_tests/editing/selection/anchor-focus3.html
-/sdcard/android/layout_tests/editing/selection/home-end.html
-/sdcard/android/layout_tests/editing/selection/user-drag-element-and-user-select-none.html
-/sdcard/android/layout_tests/editing/selection/drag-start-event-client-x-y.html
-/sdcard/android/layout_tests/editing/selection/extend-selection-bidi.html
-/sdcard/android/layout_tests/editing/selection/find-in-text-control.html
-/sdcard/android/layout_tests/editing/selection/5209984.html
-/sdcard/android/layout_tests/editing/selection/toString-1.html
-/sdcard/android/layout_tests/editing/selection/hit-test-anonymous.html
-/sdcard/android/layout_tests/editing/selection/move-begin-end.html
-/sdcard/android/layout_tests/editing/selection/doubleclick-whitespace-img-crash.html
-/sdcard/android/layout_tests/editing/selection/click-after-nested-block.html
-/sdcard/android/layout_tests/editing/selection/move-by-line-003.html
-/sdcard/android/layout_tests/editing/selection/skip-non-editable-1.html
-/sdcard/android/layout_tests/editing/selection/anchor-focus1.html
-/sdcard/android/layout_tests/editing/selection/getRangeAt.html
-/sdcard/android/layout_tests/editing/selection/select-all-textarea.html
-/sdcard/android/layout_tests/editing/selection/doubleclick-whitespace.html
-/sdcard/android/layout_tests/editing/selection/move-paragraph-document-edges.html
-/sdcard/android/layout_tests/editing/selection/after-line-break.html
-/sdcard/android/layout_tests/editing/selection/legal-positions.html
-/sdcard/android/layout_tests/editing/selection/extend-selection-after-double-click.html
-/sdcard/android/layout_tests/editing/selection/select-line.html
-/sdcard/android/layout_tests/editing/selection/doubleclick-whitespace-crash.html
-/sdcard/android/layout_tests/editing/selection/toString.html
-/sdcard/android/layout_tests/editing/selection/inactive-selection.html
-/sdcard/android/layout_tests/editing/selection/click-in-margins-inside-editable-div.html
-/sdcard/android/layout_tests/editing/selection/removeAllRanges.html
-/sdcard/android/layout_tests/editing/selection/skip-non-editable-2.html
-/sdcard/android/layout_tests/editing/selection/anchor-focus2.html
-/sdcard/android/layout_tests/editing/selection/click-in-padding-with-multiple-line-boxes.html
-/sdcard/android/layout_tests/editing/selection/click-before-and-after-table.html
-/sdcard/android/layout_tests/editing/undo/undo-iframe-location-change.html
-/sdcard/android/layout_tests/editing/deleting/pruning-after-merge-1.html
-/sdcard/android/layout_tests/editing/deleting/5546763.html
-/sdcard/android/layout_tests/editing/deleting/5729680.html
-/sdcard/android/layout_tests/editing/deleting/4916235-1.html
-/sdcard/android/layout_tests/editing/deleting/delete-ligature-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-ligature-003.html
-/sdcard/android/layout_tests/editing/deleting/skip-virama-001.html
-/sdcard/android/layout_tests/editing/deleting/smart-editing-disabled.html
-/sdcard/android/layout_tests/editing/deleting/delete-ligature-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-all-text-in-text-field-assertion.html
-/sdcard/android/layout_tests/editing/text-iterator/basic-iteration.html
-/sdcard/android/layout_tests/editing/text-iterator/thai-cursor-movement.html
-/sdcard/android/layout_tests/fast/replaced/table-percent-height-text-controls.html
-/sdcard/android/layout_tests/fast/replaced/image-map-2.html
-/sdcard/android/layout_tests/fast/replaced/image-map-bug16782.html
-/sdcard/android/layout_tests/fast/replaced/table-percent-height.html
-/sdcard/android/layout_tests/fast/replaced/image-map.html
-/sdcard/android/layout_tests/fast/dynamic/paused-event-dispatch.html
-/sdcard/android/layout_tests/fast/text/international/thai-offsetForPosition-inside-character.html
-/sdcard/android/layout_tests/fast/text/plain-text-line-breaks.html
-/sdcard/android/layout_tests/fast/text/offsetForPosition-cluster-at-zero.html
-/sdcard/android/layout_tests/fast/text/zero-width-characters.html
-/sdcard/android/layout_tests/fast/text/reset-drag-on-mouse-down.html
-/sdcard/android/layout_tests/fast/encoding/invalid-xml.html
-/sdcard/android/layout_tests/fast/encoding/char-decoding-mac.html
-/sdcard/android/layout_tests/fast/encoding/mailto-always-utf-8.html
-/sdcard/android/layout_tests/fast/encoding/percent-escaping.html
-/sdcard/android/layout_tests/fast/encoding/utf-32-big-endian-nobom.xml
-/sdcard/android/layout_tests/fast/encoding/hanarei-blog32-fc2-com.html
-/sdcard/android/layout_tests/fast/encoding/frame-default-enc.html
-/sdcard/android/layout_tests/fast/encoding/char-decoding.html
-/sdcard/android/layout_tests/fast/encoding/url-host-name-non-ascii.html
-/sdcard/android/layout_tests/fast/encoding/idn-security.html
-/sdcard/android/layout_tests/fast/encoding/utf-32-little-endian-nobom.xml
-/sdcard/android/layout_tests/fast/encoding/char-encoding-mac.html
-/sdcard/android/layout_tests/fast/encoding/charset-koi8-u.html
-/sdcard/android/layout_tests/fast/workers/worker-location.html
-/sdcard/android/layout_tests/fast/selectors/lang-inheritance.html
-/sdcard/android/layout_tests/fast/selectors/lang-vs-xml-lang.html
-/sdcard/android/layout_tests/fast/selectors/lang-inheritance2.html
-/sdcard/android/layout_tests/fast/overflow/scroll-vertical-not-horizontal.html
-/sdcard/android/layout_tests/fast/events/onunload.html
-/sdcard/android/layout_tests/fast/events/mouseup-outside-document.html
-/sdcard/android/layout_tests/fast/events/offsetX-offsetY.html
-/sdcard/android/layout_tests/fast/events/mouseover-mouseout.html
-/sdcard/android/layout_tests/fast/events/option-tab.html
-/sdcard/android/layout_tests/fast/events/popup-blocking-click-in-iframe.html
-/sdcard/android/layout_tests/fast/events/tabindex-focus-blur-all.html
-/sdcard/android/layout_tests/fast/events/onchange-passwordfield.html
-/sdcard/android/layout_tests/fast/events/drag-in-frames.html
-/sdcard/android/layout_tests/fast/events/frame-tab-focus.html
-/sdcard/android/layout_tests/fast/events/autoscroll-in-textfield.html
-/sdcard/android/layout_tests/fast/events/arrow-navigation.html
-/sdcard/android/layout_tests/fast/events/fire-scroll-event.html
-/sdcard/android/layout_tests/fast/events/attempt-scroll-with-no-scrollbars.html
-/sdcard/android/layout_tests/fast/events/mouseclick-target-and-positioning.html
-/sdcard/android/layout_tests/fast/events/anchor-empty-focus.html
-/sdcard/android/layout_tests/fast/events/input-image-scrolled-x-y.html
-/sdcard/android/layout_tests/fast/events/dblclick-addEventListener.html
-/sdcard/android/layout_tests/fast/events/frame-programmatic-focus.html
-/sdcard/android/layout_tests/fast/events/related-target.html
-/sdcard/android/layout_tests/fast/events/context-onmousedown-event.html
-/sdcard/android/layout_tests/fast/events/mouse-drag-from-frame-to-other-frame.html
-/sdcard/android/layout_tests/fast/events/prevent-drag-to-navigate.html
-/sdcard/android/layout_tests/fast/events/stop-load-in-unload-handler-using-window-stop.html
-/sdcard/android/layout_tests/fast/events/content-changed-during-drop.html
-/sdcard/android/layout_tests/fast/events/autoscroll-with-non-scrollable-parent.html
-/sdcard/android/layout_tests/fast/events/window-events-capture.html
-/sdcard/android/layout_tests/fast/events/onchange-click-hang.html
-/sdcard/android/layout_tests/fast/events/onload-webkit-before-webcore.html
-/sdcard/android/layout_tests/fast/events/window-events-bubble2.html
-/sdcard/android/layout_tests/fast/events/js-keyboard-event-creation.html
-/sdcard/android/layout_tests/fast/events/event-view-toString.html
-/sdcard/android/layout_tests/fast/events/onchange-select-popup.html
-/sdcard/android/layout_tests/fast/events/access-key-self-destruct.html
-/sdcard/android/layout_tests/fast/events/scrollbar-double-click.html
-/sdcard/android/layout_tests/fast/events/onunload-clears-onbeforeunload.html
-/sdcard/android/layout_tests/fast/events/stop-load-in-unload-handler-using-document-write.html
-/sdcard/android/layout_tests/fast/events/tabindex-focus-chain.html
-/sdcard/android/layout_tests/fast/events/capture-on-target.html
-/sdcard/android/layout_tests/fast/events/window-events-bubble.html
-/sdcard/android/layout_tests/fast/events/event-function-toString.html
-/sdcard/android/layout_tests/fast/events/right-click-focus.html
-/sdcard/android/layout_tests/fast/events/mouseup-from-button2.html
-/sdcard/android/layout_tests/fast/events/frame-click-focus.html
-/sdcard/android/layout_tests/fast/events/crash-on-mutate-during-drop.html
-/sdcard/android/layout_tests/fast/events/mouseout-on-window.html
-/sdcard/android/layout_tests/fast/events/keypress-insert-tab.html
-/sdcard/android/layout_tests/fast/events/mouseout-dead-subframe.html
-/sdcard/android/layout_tests/fast/events/onunload-not-on-body.html
-/sdcard/android/layout_tests/fast/events/mousemove-after-drag-over-scrollbar.html
-/sdcard/android/layout_tests/fast/events/contextmenu-scrolled-page-with-frame.html
-/sdcard/android/layout_tests/fast/events/drag-to-navigate.html
-/sdcard/android/layout_tests/fast/events/key-events-in-input-button.html
-/sdcard/android/layout_tests/fast/events/arrow-keys-on-body.html
-/sdcard/android/layout_tests/fast/events/ondragenter.html
-/sdcard/android/layout_tests/fast/events/pointer-events.html
-/sdcard/android/layout_tests/fast/events/scroll-to-anchor-in-overflow-hidden.html
-/sdcard/android/layout_tests/fast/events/autoscroll-nonscrollable-iframe-in-scrollable-div.html
-/sdcard/android/layout_tests/fast/events/keypress-focus-change.html
-/sdcard/android/layout_tests/fast/events/key-events-in-input-text.html
-/sdcard/android/layout_tests/fast/events/pointer-events-2.html
-/sdcard/android/layout_tests/fast/events/drag-outside-window.html
-/sdcard/android/layout_tests/fast/events/click-count.html
-/sdcard/android/layout_tests/fast/events/onchange-searchfield.html
-/sdcard/android/layout_tests/fast/events/special-key-events-in-input-text.html
-/sdcard/android/layout_tests/fast/events/mouse-drag-from-frame.html
-/sdcard/android/layout_tests/fast/events/keydown-keypress-preventDefault.html
-/sdcard/android/layout_tests/fast/events/onsearch-enter.html
-/sdcard/android/layout_tests/fast/events/mouse-click-events.html
-/sdcard/android/layout_tests/fast/events/mouseover-mouseout2.html
-/sdcard/android/layout_tests/fast/events/open-window-from-another-frame.html
-/sdcard/android/layout_tests/fast/events/resize-subframe.html
-/sdcard/android/layout_tests/fast/events/onchange-textfield.html
-/sdcard/android/layout_tests/fast/events/onclick-list-marker.html
-/sdcard/android/layout_tests/fast/events/anchor-image-scrolled-x-y.html
-/sdcard/android/layout_tests/fast/images/image-map-zoom.html
-/sdcard/android/layout_tests/fast/js/kde/Number.html
-/sdcard/android/layout_tests/fast/js/instanceof-operator.html
-/sdcard/android/layout_tests/fast/js/navigator-mimeTypes-length.html
-/sdcard/android/layout_tests/fast/js/global-constructors.html
-/sdcard/android/layout_tests/fast/js/convert-nan-to-bool.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/hasFocus.html
-/sdcard/android/layout_tests/fast/dom/Document/early-document-access.html
-/sdcard/android/layout_tests/fast/dom/DOMException/XPathException.html
-/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/nested-execution.html
-/sdcard/android/layout_tests/fast/dom/HTMLDataGridElement/DataGridColumns-dom.html
-/sdcard/android/layout_tests/fast/dom/HTMLDataGridElement/DataGridColumns-basic.html
-/sdcard/android/layout_tests/fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html
-/sdcard/android/layout_tests/fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/010.xml
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/011.xml
-/sdcard/android/layout_tests/fast/dom/Window/window-xy-properties.html
-/sdcard/android/layout_tests/fast/dom/Window/window-screen-properties.html
-/sdcard/android/layout_tests/fast/dom/Window/new-window-opener.html
-/sdcard/android/layout_tests/fast/dom/Window/dom-access-from-closure-window.html
-/sdcard/android/layout_tests/fast/dom/Window/window-resize.html
-/sdcard/android/layout_tests/fast/dom/Window/closure-access-after-navigation-window.html
-/sdcard/android/layout_tests/fast/dom/Window/Plug-ins.html
-/sdcard/android/layout_tests/fast/dom/Window/get-set-properties.html
-/sdcard/android/layout_tests/fast/dom/Window/window-scroll-arguments.html
-/sdcard/android/layout_tests/fast/dom/Window/window-lookup-precedence.html
-/sdcard/android/layout_tests/fast/dom/Window/window-resize-and-move-arguments.html
-/sdcard/android/layout_tests/fast/dom/Window/custom-constructors.html
-/sdcard/android/layout_tests/fast/dom/Window/webkitConvertPoint.html
-/sdcard/android/layout_tests/fast/dom/Window/window-properties.html
-/sdcard/android/layout_tests/fast/dom/Window/window-onFocus.html
-/sdcard/android/layout_tests/fast/dom/Window/dom-access-from-closure-iframe.html
-/sdcard/android/layout_tests/fast/dom/Window/window-early-properties.html
-/sdcard/android/layout_tests/fast/dom/StyleSheet/ownerNode-lifetime-2.html
-/sdcard/android/layout_tests/fast/dom/dom-constructors.html
-/sdcard/android/layout_tests/fast/dom/assign-to-window-status.html
-/sdcard/android/layout_tests/fast/dom/navigator-detached-no-crash.html
-/sdcard/android/layout_tests/fast/dom/object-embed-plugin-scripting.html
-/sdcard/android/layout_tests/fast/dom/node-filter-gc.html
-/sdcard/android/layout_tests/fast/dom/noscript-canvas-in-created-html-document.html
-/sdcard/android/layout_tests/fast/dom/getClientRects.html
-/sdcard/android/layout_tests/fast/dom/null-document-location-href-put-crash.html
-/sdcard/android/layout_tests/fast/dom/prototype-inheritance-2.html
-/sdcard/android/layout_tests/fast/dom/location-new-window-no-crash.html
-/sdcard/android/layout_tests/fast/dom/gc-9.html
-/sdcard/android/layout_tests/fast/dom/wrapper-classes.html
-/sdcard/android/layout_tests/fast/dom/document-width-height-force-layout.html
-/sdcard/android/layout_tests/fast/dom/client-width-height.html
-/sdcard/android/layout_tests/fast/dom/constructed-objects-prototypes.html
-/sdcard/android/layout_tests/fast/dom/global-constructors.html
-/sdcard/android/layout_tests/fast/dom/client-width-height-quirks.html
-/sdcard/android/layout_tests/fast/dom/javascript-url-crash-function.html
-/sdcard/android/layout_tests/fast/dom/getBoundingClientRect.html
-/sdcard/android/layout_tests/fast/dom/location-hash.html
-/sdcard/android/layout_tests/fast/dom/documenturi-can-hold-arbitrary-string.html
-/sdcard/android/layout_tests/fast/dom/documenturi-not-affected-by-base-tag.html
-/sdcard/android/layout_tests/fast/dom/open-and-close-by-DOM.html
-/sdcard/android/layout_tests/fast/dom/set-frame-src-while-running-script-in-frame.html
-/sdcard/android/layout_tests/fast/dom/prototype-inheritance.html
-/sdcard/android/layout_tests/fast/dom/getBoundingClientRect-getClientRects-relative-to-viewport.html
-/sdcard/android/layout_tests/fast/dom/frame-loading-via-document-write.html
-/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/paths.html
-/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/expressions.html
-/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/predicates.html
-/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/abbreviations.html
-/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/axes.html
-/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/functions.html
-/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/nodetests.html
-/sdcard/android/layout_tests/fast/xpath/py-dom-xpath/data.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Borrowed/od_20000608.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Borrowed/namespace-nodes.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Borrowed/rs_20010831.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Borrowed/sr_20021217.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Borrowed/kd_20010423.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Borrowed/cz_20030217.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Core/test_boolean_expr.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Core/test_core_functions.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Core/test_location_path.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Core/test_node_test.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Core/test_literal_expr.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Core/test_predicate_list.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Core/test_parser.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Core/test_nodeset_expr.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Core/test_numeric_expr.html
-/sdcard/android/layout_tests/fast/xpath/4XPath/Core/test_step.html
-/sdcard/android/layout_tests/fast/xpath/detached-subtree-invalidate-iterator.html
-/sdcard/android/layout_tests/fast/xpath/ancestor-axis.html
-/sdcard/android/layout_tests/fast/xpath/string-value.html
-/sdcard/android/layout_tests/fast/xpath/id-simple.html
-/sdcard/android/layout_tests/fast/xpath/id-path.html
-/sdcard/android/layout_tests/fast/xpath/invalid-functions.html
-/sdcard/android/layout_tests/fast/xpath/xpath-namespaces.html
-/sdcard/android/layout_tests/fast/xpath/node-name-case-sensitivity.html
-/sdcard/android/layout_tests/fast/xpath/xpath-empty-string.html
-/sdcard/android/layout_tests/fast/xpath/attribute-node-predicate.html
-/sdcard/android/layout_tests/fast/xpath/nodeset-duplicates.html
-/sdcard/android/layout_tests/fast/xpath/name-null-namespace.html
-/sdcard/android/layout_tests/fast/xpath/implicit-node-args.html
-/sdcard/android/layout_tests/fast/xpath/text-nodes.html
-/sdcard/android/layout_tests/fast/xpath/complex-id.html
-/sdcard/android/layout_tests/fast/xpath/xpath-functional-test.html
-/sdcard/android/layout_tests/fast/xpath/attr-namespace.html
-/sdcard/android/layout_tests/fast/xpath/position.html
-/sdcard/android/layout_tests/fast/xpath/evaluate-twice.html
-/sdcard/android/layout_tests/fast/xpath/substring-after.html
-/sdcard/android/layout_tests/fast/xpath/empty-string-substring.html
-/sdcard/android/layout_tests/fast/xpath/document-order.html
-/sdcard/android/layout_tests/fast/xpath/reverse-axes.html
-/sdcard/android/layout_tests/fast/xpath/nan-to-boolean.html
-/sdcard/android/layout_tests/fast/forms/mailto/get-non-ascii-text-plain.html
-/sdcard/android/layout_tests/fast/forms/mailto/advanced-get.html
-/sdcard/android/layout_tests/fast/forms/mailto/get-non-ascii-text-plain-latin-1.html
-/sdcard/android/layout_tests/fast/forms/mailto/post-multiple-items-multipart-form-data.html
-/sdcard/android/layout_tests/fast/forms/mailto/get-multiple-items.html
-/sdcard/android/layout_tests/fast/forms/mailto/get-non-ascii-always-utf-8.html
-/sdcard/android/layout_tests/fast/forms/mailto/post-multiple-items.html
-/sdcard/android/layout_tests/fast/forms/mailto/post-append-query.html
-/sdcard/android/layout_tests/fast/forms/mailto/get-multiple-items-x-www-form-urlencoded.html
-/sdcard/android/layout_tests/fast/forms/mailto/get-overwrite-query.html
-/sdcard/android/layout_tests/fast/forms/mailto/post-multiple-items-x-www-form-urlencoded.html
-/sdcard/android/layout_tests/fast/forms/mailto/get-multiple-items-text-plain.html
-/sdcard/android/layout_tests/fast/forms/mailto/post-multiple-items-text-plain.html
-/sdcard/android/layout_tests/fast/forms/mailto/get-non-ascii.html
-/sdcard/android/layout_tests/fast/forms/mailto/post-text-plain-with-accept-charset.html
-/sdcard/android/layout_tests/fast/forms/mailto/post-text-plain.html
-/sdcard/android/layout_tests/fast/forms/mailto/advanced-put.html
-/sdcard/android/layout_tests/fast/forms/listbox-typeahead-scroll.html
-/sdcard/android/layout_tests/fast/forms/select-empty-list.html
-/sdcard/android/layout_tests/fast/forms/focus2.html
-/sdcard/android/layout_tests/fast/forms/legend-access-key.html
-/sdcard/android/layout_tests/fast/forms/focus-selection-textarea.html
-/sdcard/android/layout_tests/fast/forms/select-popup-pagekeys.html
-/sdcard/android/layout_tests/fast/forms/select-double-onchange.html
-/sdcard/android/layout_tests/fast/forms/button-enter-click.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-003.html
-/sdcard/android/layout_tests/fast/forms/search-click-in-placeholder.html
-/sdcard/android/layout_tests/fast/forms/onselect-textfield.html
-/sdcard/android/layout_tests/fast/forms/textfield-onchange-deletion.html
-/sdcard/android/layout_tests/fast/forms/listbox-onchange.html
-/sdcard/android/layout_tests/fast/forms/button-spacebar-click.html
-/sdcard/android/layout_tests/fast/forms/search-cancel-button-mouseup.html
-/sdcard/android/layout_tests/fast/forms/get-file-upload.html
-/sdcard/android/layout_tests/fast/forms/select-enter-key.html
-/sdcard/android/layout_tests/fast/forms/drag-out-of-textarea.html
-/sdcard/android/layout_tests/fast/forms/option-mouseevents.html
-/sdcard/android/layout_tests/fast/forms/input-radio-checked-tab.html
-/sdcard/android/layout_tests/fast/forms/plaintext-mode-1.html
-/sdcard/android/layout_tests/fast/forms/input-select-on-click.html
-/sdcard/android/layout_tests/fast/forms/textarea-scrolled-endline-caret.html
-/sdcard/android/layout_tests/fast/forms/textarea-scrollbar-height.html
-/sdcard/android/layout_tests/fast/forms/textarea-type-spaces.html
-/sdcard/android/layout_tests/fast/forms/slider-mouse-events.html
-/sdcard/android/layout_tests/fast/forms/slider-onchange-event.html
-/sdcard/android/layout_tests/fast/forms/textarea-input-event.html
-/sdcard/android/layout_tests/fast/forms/search-delete-while-cancel-button-clicked.html
-/sdcard/android/layout_tests/fast/forms/select-accesskey.html
-/sdcard/android/layout_tests/fast/forms/password-doubleclick-selection.html
-/sdcard/android/layout_tests/fast/forms/textfield-inside-anchor.html
-/sdcard/android/layout_tests/fast/forms/slider-delete-while-dragging-thumb.html
-/sdcard/android/layout_tests/fast/forms/textfield-to-password-on-focus.html
-/sdcard/android/layout_tests/fast/forms/textarea-arrow-navigation.html
-/sdcard/android/layout_tests/fast/forms/search-abs-pos-cancel-button.html
-/sdcard/android/layout_tests/fast/forms/enter-clicks-buttons.html
-/sdcard/android/layout_tests/fast/forms/radio_checked_name.html
-/sdcard/android/layout_tests/fast/forms/search-hidden-cancel-button.html
-/sdcard/android/layout_tests/fast/forms/select-script-onchange.html
-/sdcard/android/layout_tests/fast/forms/textarea-paste-newline.html
-/sdcard/android/layout_tests/fast/forms/drag-into-textarea.html
-/sdcard/android/layout_tests/fast/forms/form-and-frame-interaction-retains-values.html
-/sdcard/android/layout_tests/fast/forms/slider-transformed.html
-/sdcard/android/layout_tests/fast/forms/focus-control-to-page.html
-/sdcard/android/layout_tests/fast/forms/select-type-ahead-non-latin.html
-/sdcard/android/layout_tests/fast/forms/focus-selection-input.html
-/sdcard/android/layout_tests/fast/forms/slider-zoomed.html
-/sdcard/android/layout_tests/fast/forms/search-event-delay.html
-/sdcard/android/layout_tests/fast/forms/empty-textarea-toggle-disabled.html
-/sdcard/android/layout_tests/fast/forms/25153.html
-/sdcard/android/layout_tests/fast/forms/select-cache-desynchronization.html
-/sdcard/android/layout_tests/fast/forms/check-box-enter-key.html
-/sdcard/android/layout_tests/fast/forms/button-state-restore.html
-/sdcard/android/layout_tests/fast/forms/access-key.html
-/sdcard/android/layout_tests/fast/forms/textarea-selection-preservation.html
-/sdcard/android/layout_tests/fast/forms/textarea-metrics.html
-/sdcard/android/layout_tests/fast/forms/onchange-enter-submit.html
-/sdcard/android/layout_tests/fast/forms/onselect-textarea.html
-/sdcard/android/layout_tests/fast/forms/listbox-selection.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/computed-style.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/computed-style-without-renderer.html
-/sdcard/android/layout_tests/fast/css/text-align.html
-/sdcard/android/layout_tests/fast/css/hover-affects-child.html
-/sdcard/android/layout_tests/fast/css/resize-single-axis.html
-/sdcard/android/layout_tests/fast/css/percent-character-as-value.html
-/sdcard/android/layout_tests/fast/css/uri-token-parsing.html
-/sdcard/android/layout_tests/fast/css/zoom-body-scroll.html
-/sdcard/android/layout_tests/fast/css/invalid-percentage-property.html
-/sdcard/android/layout_tests/fast/parser/external-entities-in-xslt.xml
-/sdcard/android/layout_tests/fast/parser/xml-declaration-missing-ending-mark.html
-/sdcard/android/layout_tests/fast/parser/tabindex-parsing.html
-/sdcard/android/layout_tests/fast/history/saves-state-after-fragment-nav.html
-/sdcard/android/layout_tests/fast/history/back-forward-is-asynchronous.html
-/sdcard/android/layout_tests/fast/history/window-open.html
-/sdcard/android/layout_tests/fast/history/history_reload.html
-/sdcard/android/layout_tests/fast/history/go-back-to-changed-name.html
-/sdcard/android/layout_tests/fast/loader/cancel-load-during-port-block-timer.html
-/sdcard/android/layout_tests/fast/loader/local-iFrame-source-from-local.html
-/sdcard/android/layout_tests/fast/loader/null-request-after-willSendRequest.html
-/sdcard/android/layout_tests/fast/loader/stop-provisional-loads.html
-/sdcard/android/layout_tests/fast/loader/location-port.html
-/sdcard/android/layout_tests/fast/loader/user-style-sheet-resource-load-callbacks.html
-/sdcard/android/layout_tests/fast/loader/policy-delegate-action-hit-test-zoomed.html
-/sdcard/android/layout_tests/fast/loader/subframe-navigate-during-main-frame-load.html
-/sdcard/android/layout_tests/fast/loader/onunload-form-submit-crash-2.html
-/sdcard/android/layout_tests/fast/loader/javascript-url-hierarchical-execution.html
-/sdcard/android/layout_tests/fast/loader/plain-text-document.html
-/sdcard/android/layout_tests/fast/loader/onunload-form-submit-crash.html
-/sdcard/android/layout_tests/fast/loader/subframe-self-close.html
-/sdcard/android/layout_tests/fast/loader/local-image-from-local.html
-/sdcard/android/layout_tests/fast/loader/local-CSS-from-local.html
-/sdcard/android/layout_tests/fast/loader/reload-policy-delegate.html
-/sdcard/android/layout_tests/fast/loader/local-JavaScript-from-local.html
-/sdcard/android/layout_tests/fast/loader/main-document-url-for-non-http-loads.html
-/sdcard/android/layout_tests/fast/loader/data-url-encoding-svg.html
-/sdcard/android/layout_tests/fast/loader/data-url-encoding-html.html
-/sdcard/android/layout_tests/fast/loader/opaque-base-url.html
-/sdcard/android/layout_tests/fast/xsl/sort-locale.xml
-/sdcard/android/layout_tests/fast/xsl/transformToFragment-XML-declaration.html
-/sdcard/android/layout_tests/fast/xsl/extra-lf-at-end.html
-/sdcard/android/layout_tests/fast/xsl/xslt-doc-noenc.xml
-/sdcard/android/layout_tests/fast/xsl/import-after-comment.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-processor.html
-/sdcard/android/layout_tests/fast/xsl/sort-unicode.xml
-/sdcard/android/layout_tests/fast/xsl/default-html.html
-/sdcard/android/layout_tests/fast/xsl/nbsp-in-stylesheet.html
-/sdcard/android/layout_tests/fast/xsl/xslt-string-parameters.html
-/sdcard/android/layout_tests/fast/xsl/xslt-entity-enc.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-text.html
-/sdcard/android/layout_tests/fast/xsl/xslt-nested-stylesheets.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-url.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-doc-enc.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-recursion.xml
-/sdcard/android/layout_tests/fast/xsl/exslt-node-set.xml
-/sdcard/android/layout_tests/fast/xsl/subframe-location.html
-/sdcard/android/layout_tests/fast/xsl/xslt-second-level-import.xml
-/sdcard/android/layout_tests/fast/xsl/dtd-in-source-document.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-fragment-in-empty-doc.html
-/sdcard/android/layout_tests/fast/xsl/mozilla-tests.xml
-/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-bad-mimetype.html
-/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-gc.html
-/sdcard/android/layout_tests/fast/canvas/canvas-alphaImageData-behavior.html
-/sdcard/android/layout_tests/fast/canvas/canvas-gradient-addStop-error.html
-/sdcard/android/layout_tests/fast/canvas/canvas-pattern-behaviour.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transform-non-invertible.html
-/sdcard/android/layout_tests/fast/canvas/pointInPath.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transform-infinity.html
-/sdcard/android/layout_tests/fast/canvas/translate-text.html
-/sdcard/android/layout_tests/fast/canvas/toDataURL-supportedTypes.html
-/sdcard/android/layout_tests/fast/canvas/canvas-getImageData.html
-/sdcard/android/layout_tests/fast/canvas/canvas-empty-image-pattern.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transform-skewed.html
-/sdcard/android/layout_tests/fast/canvas/canvas-ImageData-behaviour.html
-/sdcard/android/layout_tests/fast/canvas/canvas-putImageData.html
-/sdcard/android/layout_tests/fast/canvas/canvas-pattern-modify.html
-/sdcard/android/layout_tests/fast/canvas/canvas-longlived-context.html
-/sdcard/android/layout_tests/fast/canvas/canvas-save-restore-with-path.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transform-nan.html
-/sdcard/android/layout_tests/fast/canvas/canvas-pattern-transform.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transform-identity.html
-/sdcard/android/layout_tests/fast/canvas/set-colors.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transform-multiply.html
-/sdcard/android/layout_tests/fast/frames/viewsource-empty-attribute-value.html
-/sdcard/android/layout_tests/fast/frames/location-put-after-removal.html
-/sdcard/android/layout_tests/fast/frames/frame-deep-nested-resize.html
-/sdcard/android/layout_tests/fast/frames/iframe-window-focus.html
-/sdcard/android/layout_tests/fast/frames/frame-dead-region.html
-/sdcard/android/layout_tests/fast/frames/frameElement-widthheight.html
-/sdcard/android/layout_tests/fast/frames/removal-before-attach-crash.html
-/sdcard/android/layout_tests/fast/frames/frame-unload-crash.html
-/sdcard/android/layout_tests/fast/frames/frame-js-url-clientWidth.html
-/sdcard/android/layout_tests/fast/frames/iframe-js-url-clientWidth.html
-/sdcard/android/layout_tests/fast/frames/frame-length-fractional.html
-/sdcard/android/layout_tests/fast/frames/iframe-name-and-id.html
-/sdcard/android/layout_tests/fast/loading/subframe-removes-itself.html
-/sdcard/android/layout_tests/http/tests/media/video-seekable-stall.html
-/sdcard/android/layout_tests/http/tests/media/remove-while-loading.html
-/sdcard/android/layout_tests/http/tests/media/video-play-stall.html
-/sdcard/android/layout_tests/http/tests/media/video-play-stall-seek.html
-/sdcard/android/layout_tests/http/tests/plugins/npapi-response-headers.html
-/sdcard/android/layout_tests/http/tests/plugins/get-url.html
-/sdcard/android/layout_tests/http/tests/plugins/interrupted-get-url.html
-/sdcard/android/layout_tests/http/tests/plugins/post-url-file.html
-/sdcard/android/layout_tests/http/tests/plugins/cross-frame-object-access.html
-/sdcard/android/layout_tests/http/tests/plugins/local-geturl-from-remote.html
-/sdcard/android/layout_tests/http/tests/plugins/geturlnotify-from-npp-destroystream.html
-/sdcard/android/layout_tests/http/tests/mime/standard-mode-does-not-load-stylesheet-with-text-plain-and-css-extension.html
-/sdcard/android/layout_tests/http/tests/mime/standard-mode-does-not-load-stylesheet-with-text-plain.html
-/sdcard/android/layout_tests/http/tests/local/drag-over-remote-content.html
-/sdcard/android/layout_tests/http/tests/misc/image-blocked-src-change.html
-/sdcard/android/layout_tests/http/tests/misc/acid3.html
-/sdcard/android/layout_tests/http/tests/misc/dns-prefetch-control.html
-/sdcard/android/layout_tests/http/tests/misc/will-send-request-returns-null-on-redirect.html
-/sdcard/android/layout_tests/http/tests/misc/isindex-formdata.html
-/sdcard/android/layout_tests/http/tests/misc/image-blocked-src-no-change.html
-/sdcard/android/layout_tests/http/tests/misc/policy-delegate-called-twice.html
-/sdcard/android/layout_tests/http/tests/misc/window-dot-stop.html
-/sdcard/android/layout_tests/http/tests/misc/css-reject-any-type-in-strict-mode.html
-/sdcard/android/layout_tests/http/tests/misc/favicon-loads-with-images-disabled.html
-/sdcard/android/layout_tests/http/tests/misc/SVGFont-delayed-load.html
-/sdcard/android/layout_tests/http/tests/misc/location-test-xsl-style-sheet.xml
-/sdcard/android/layout_tests/http/tests/misc/redirect-to-external-url.html
-/sdcard/android/layout_tests/http/tests/misc/submit-get-in-utf7.html
-/sdcard/android/layout_tests/http/tests/cookies/simple-cookies-max-age.html
-/sdcard/android/layout_tests/http/tests/cookies/simple-cookies-expired.html
-/sdcard/android/layout_tests/http/tests/cookies/multiple-cookies.html
-/sdcard/android/layout_tests/http/tests/wml/access-target-path-deny.html
-/sdcard/android/layout_tests/http/tests/wml/post-data-to-server.html
-/sdcard/android/layout_tests/http/tests/wml/go-task-get-method-accept-charset.html
-/sdcard/android/layout_tests/http/tests/wml/access-target.html
-/sdcard/android/layout_tests/http/tests/wml/access-target-domain-deny.html
-/sdcard/android/layout_tests/http/tests/wml/go-task-post-method-accept-charset.html
-/sdcard/android/layout_tests/http/tests/wml/go-task-get-method.html
-/sdcard/android/layout_tests/http/tests/wml/go-task-post-method.html
-/sdcard/android/layout_tests/http/tests/navigation/success200-reload.html
-/sdcard/android/layout_tests/http/tests/navigation/redirect-cycle.html
-/sdcard/android/layout_tests/http/tests/navigation/reload-subframe-frame.html
-/sdcard/android/layout_tests/http/tests/navigation/window-open-adds-history-item.html
-/sdcard/android/layout_tests/http/tests/navigation/success200-goback.html
-/sdcard/android/layout_tests/http/tests/navigation/timerredirect-basic.html
-/sdcard/android/layout_tests/http/tests/navigation/lockedhistory-iframe.html
-/sdcard/android/layout_tests/http/tests/navigation/document-location-click-timeout.html
-/sdcard/android/layout_tests/http/tests/navigation/post-goback2.html
-/sdcard/android/layout_tests/http/tests/navigation/onload-navigation-iframe-timeout.html
-/sdcard/android/layout_tests/http/tests/navigation/location-assign-adds-history-item.html
-/sdcard/android/layout_tests/http/tests/navigation/anchor-goback.html
-/sdcard/android/layout_tests/http/tests/navigation/redirect-load-no-form-restoration.html
-/sdcard/android/layout_tests/http/tests/navigation/metaredirect-subframeload.html
-/sdcard/android/layout_tests/http/tests/navigation/javascriptlink-subframeload.html
-/sdcard/android/layout_tests/http/tests/navigation/metaredirect-basic.html
-/sdcard/android/layout_tests/http/tests/navigation/success200-subframeload.html
-/sdcard/android/layout_tests/http/tests/navigation/post-goback-same-url.html
-/sdcard/android/layout_tests/http/tests/navigation/restore-form-state-https.html
-/sdcard/android/layout_tests/http/tests/navigation/success200-frames.html
-/sdcard/android/layout_tests/http/tests/navigation/redirect302-basic.html
-/sdcard/android/layout_tests/http/tests/navigation/document-location-mouseover.html
-/sdcard/android/layout_tests/http/tests/navigation/redirect302-goback.html
-/sdcard/android/layout_tests/http/tests/navigation/anchor-subframeload.html
-/sdcard/android/layout_tests/http/tests/navigation/target-frame-from-window.html
-/sdcard/android/layout_tests/http/tests/navigation/slowmetaredirect-basic.html
-/sdcard/android/layout_tests/http/tests/navigation/reload-subframe-iframe.html
-/sdcard/android/layout_tests/http/tests/navigation/success200-loadsame.html
-/sdcard/android/layout_tests/http/tests/navigation/relativeanchor-basic.html
-/sdcard/android/layout_tests/http/tests/navigation/redirect302-subframeload.html
-/sdcard/android/layout_tests/http/tests/navigation/relativeanchor-goback.html
-/sdcard/android/layout_tests/http/tests/navigation/metaredirect-goback.html
-/sdcard/android/layout_tests/http/tests/navigation/redirect302-frames.html
-/sdcard/android/layout_tests/http/tests/navigation/multiple-back-forward-entries.html
-/sdcard/android/layout_tests/http/tests/navigation/javascriptlink-goback.html
-/sdcard/android/layout_tests/http/tests/navigation/success200-basic.html
-/sdcard/android/layout_tests/http/tests/navigation/postredirect-goback2.html
-/sdcard/android/layout_tests/http/tests/navigation/timerredirect-goback.html
-/sdcard/android/layout_tests/http/tests/navigation/location-href-set-adds-history-item.html
-/sdcard/android/layout_tests/http/tests/navigation/anchor-basic.html
-/sdcard/android/layout_tests/http/tests/navigation/document-location-click.html
-/sdcard/android/layout_tests/http/tests/navigation/onload-navigation-iframe.html
-/sdcard/android/layout_tests/http/tests/navigation/relativeanchor-frames.html
-/sdcard/android/layout_tests/http/tests/navigation/metaredirect-frames.html
-/sdcard/android/layout_tests/http/tests/navigation/location-replace-adds-history-item.html
-/sdcard/android/layout_tests/http/tests/navigation/success200-frames-loadsame.html
-/sdcard/android/layout_tests/http/tests/navigation/back-to-slow-frame.html
-/sdcard/android/layout_tests/http/tests/navigation/new-window-redirect-history.html
-/sdcard/android/layout_tests/http/tests/navigation/javascriptlink-basic.html
-/sdcard/android/layout_tests/http/tests/navigation/timerredirect-subframeload.html
-/sdcard/android/layout_tests/http/tests/navigation/location-set-adds-history-item.html
-/sdcard/android/layout_tests/http/tests/navigation/onload-navigation-iframe-2.html
-/sdcard/android/layout_tests/http/tests/navigation/reload-subframe-object.html
-/sdcard/android/layout_tests/http/tests/navigation/timerredirect-frames.html
-/sdcard/android/layout_tests/http/tests/navigation/slowtimerredirect-basic.html
-/sdcard/android/layout_tests/http/tests/navigation/window-open-adds-history-item2.html
-/sdcard/android/layout_tests/http/tests/navigation/document-location-onload.html
-/sdcard/android/layout_tests/http/tests/history/redirect-meta-refresh-2-seconds.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-location-assign-before-load.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-location-href-0-seconds.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-location-href-2-seconds.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-form-submit-0-seconds.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-form-submit-2-seconds.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-location-0-seconds.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-location-2-seconds.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-location-href-before-load.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-location-replace-0-seconds.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-location-replace-2-seconds.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-document-location-0-seconds.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-document-location-2-seconds.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-form-submit-before-load.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-location-assign-0-seconds.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-location-assign-2-seconds.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-location-before-load.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-location-replace-before-load.html
-/sdcard/android/layout_tests/http/tests/history/redirect-js-document-location-before-load.html
-/sdcard/android/layout_tests/http/tests/history/redirect-meta-refresh-0-seconds.html
-/sdcard/android/layout_tests/http/tests/cache/subresource-expiration.html
-/sdcard/android/layout_tests/http/tests/appcache/local-content.html
-/sdcard/android/layout_tests/http/tests/appcache/max-size.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/xss-DENIED-set-opener.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-from-javascript-url-window-open.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-2-level.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-subframe.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-window-open.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-location-change.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-window-open.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-2-level.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-uppercase.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-to-data-url-window-open.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-to-data-url-sub-frame.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-from-data-url-to-data-url.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-to-data-url-from-data-url.html
-/sdcard/android/layout_tests/http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame.html
-/sdcard/android/layout_tests/http/tests/security/clipboard/clipboard-file-access.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/image-prototype.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/body-properties.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/number-prototype.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/body-prototype.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/global-variables.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/location-prototype.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/image-properties.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/document-open.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/document-prototype.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/window-properties.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/location-properties.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/all-window-prototypes.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/click-event.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/all-window-properties.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/document-properties.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/string-prototype.html
-/sdcard/android/layout_tests/http/tests/security/isolatedWorld/object-prototype.html
-/sdcard/android/layout_tests/http/tests/security/listener/xss-window-onclick-addEventListener.html
-/sdcard/android/layout_tests/http/tests/security/listener/xss-window-onclick-shortcut.html
-/sdcard/android/layout_tests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow.html
-/sdcard/android/layout_tests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html
-/sdcard/android/layout_tests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body.html
-/sdcard/android/layout_tests/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag.html
-/sdcard/android/layout_tests/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow.html
-/sdcard/android/layout_tests/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny.html
-/sdcard/android/layout_tests/http/tests/security/XFrameOptions/x-frame-options-deny.html
-/sdcard/android/layout_tests/http/tests/security/frameNavigation/xss-ALLOWED-targeted-subframe-navigation-change.html
-/sdcard/android/layout_tests/http/tests/security/frameNavigation/xss-DENIED-targeted-link-navigation.html
-/sdcard/android/layout_tests/http/tests/security/frameNavigation/xss-DENIED-plugin-navigation.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNode.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNodeNS.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttribute.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNS.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNode.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNodeNS.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-sub-frame-2-level.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-to-javscript-url.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-from-javscript-url.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-getAttribute-value.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-htmldom.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-sub-frame-2-level.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-window-open.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-window-open.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-getAttribute-value.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-sub-frame.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-sub-frame-to-javascript-url-sub-frame.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-subframe.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-window-open.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-htmldom.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-window-open.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/xss-ALLOWED-to-javascript-url-sub-frame.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttribute.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNS.html
-/sdcard/android/layout_tests/http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-subframe.html
-/sdcard/android/layout_tests/http/tests/security/originHeader/origin-header-for-empty.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/base-href-null-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/base-href-control-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/faux-script1.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/javascript-link-control-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-convoluted.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/dom-write-location.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/javascript-link-HTML-entities-control-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/object-embed-tag-control-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/javascript-link-null-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/anchor-url-dom-write-location.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/link-onclick-ampersand.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-with-source-double-quote.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-with-source-no-quote.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/base-href-safe3.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/http-equiv-utf-7-encoded.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/link-onclick-control-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/base-href-scheme-relative.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-open-redirect.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/object-embed-tag-null-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/faux-script3.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/link-onclick-entities.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-post.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/embed-tag-control-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/property-escape.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-post-null-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/javascript-link-HTML-entities.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-null-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-addslashes-single-quote.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/dom-write-innerHTML.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-with-source-entities.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/dom-write-location-inline-event.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/malformed-HTML.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/javascript-link-ampersand.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/link-onclick.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/base-href-safe2.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event-null-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/dom-write-URL.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-redirect.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/object-tag.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-addslashes-backslash.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/dom-write-location-javascript-URL.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/embed-tag.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/faux-script2.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/anchor-url-dom-write-location-javascript-URL.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-with-source-relative-scheme.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/img-onerror-tricky.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/javascript-link-HTML-entities-named.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/javascript-link-HTML-entities-null-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-addslashes-null-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/link-opens-new-window.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-utf-7-encoded.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-utf-7.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-with-source.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-addslashes-double-quote.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-safe.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/link-onclick-null-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/javascript-link.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-control-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-with-source-null-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/iframe-javascript-url.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-src-redirect-safe.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-with-source-control-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/get-from-iframe.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/inline-event-HTML-entities.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/post-from-iframe.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-post-control-char.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/object-embed-tag.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/base-href.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/script-tag-entities.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/base-href-safe.html
-/sdcard/android/layout_tests/http/tests/security/xssAuditor/embed-tag-null-char.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-location-get-override.html
-/sdcard/android/layout_tests/http/tests/security/protocol-compare-case-insensitive.html
-/sdcard/android/layout_tests/http/tests/security/xss-DENIED-xsl-external-entity.xml
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-history-get-override.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-get-override.html
-/sdcard/android/layout_tests/http/tests/security/cross-origin-xsl-BLOCKED.html
-/sdcard/android/layout_tests/http/tests/security/local-iFrame-from-remote.html
-/sdcard/android/layout_tests/http/tests/security/credentials-in-referer.html
-/sdcard/android/layout_tests/http/tests/security/xss-DENIED-xsl-external-entity-redirect.xml
-/sdcard/android/layout_tests/http/tests/security/local-video-poster-from-remote.html
-/sdcard/android/layout_tests/http/tests/security/local-CSS-from-remote.html
-/sdcard/android/layout_tests/http/tests/security/local-user-CSS-from-remote.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-object-prototype.html
-/sdcard/android/layout_tests/http/tests/security/dataTransfer-set-data-file-url.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-enumeration.html
-/sdcard/android/layout_tests/http/tests/security/host-compare-case-insensitive.html
-/sdcard/android/layout_tests/http/tests/security/xss-DENIED-xsl-document.xml
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-protocol.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-private-browsing.html
-/sdcard/android/layout_tests/http/tests/security/feed-urls-from-remote.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-put.html
-/sdcard/android/layout_tests/http/tests/security/canvas-remote-read-svg-image.html
-/sdcard/android/layout_tests/http/tests/security/window-properties-clear-domain.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-callback-explicit-domain-DENY.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-get.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-port.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-document-direct.html
-/sdcard/android/layout_tests/http/tests/security/window-properties-pass.html
-/sdcard/android/layout_tests/http/tests/security/local-video-src-from-remote.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-history-put.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-child-explicit-domain.html
-/sdcard/android/layout_tests/http/tests/security/local-video-source-from-remote.html
-/sdcard/android/layout_tests/http/tests/security/drag-over-remote-content-iframe.html
-/sdcard/android/layout_tests/http/tests/security/local-JavaScript-from-remote.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-parent-explicit-domain.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-location-put.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-history-get.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-get-custom-property-cached.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-location-get.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-delete.html
-/sdcard/android/layout_tests/http/tests/security/xss-DENIED-xsl-document-redirect.xml
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-protocol-explicit-domain.html
-/sdcard/android/layout_tests/http/tests/security/window-properties-clear-port.html
-/sdcard/android/layout_tests/http/tests/security/frame-loading-via-document-write.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-port-explicit-domain.html
-/sdcard/android/layout_tests/http/tests/security/local-image-from-remote.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/workers/methods-async.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/workers/methods.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/008.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/methods-async.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/methods.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/uri-resolution-opera-open-005.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/upload-onload-event.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/small-chunks-response-text.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-non-simple-allow-async.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/uri-resolution-opera-open-009.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/frame-unload-abort-crash.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-non-simple-deny-cached.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/uri-resolution-opera-open-006.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/upload-onprogress-event.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-allow.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/cache-override.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xhr-onunload.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/methods-lower-case.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/uri-resolution-opera-open-007.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/svg-created-by-xhr-disallowed-in-dashboard.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/uri-resolution-opera-open-004.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-missing-file-exception.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/cookies.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/uri-resolution-opera-open-010.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/redirect-cross-origin-tripmine.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/origin-header-same-origin-get-sync.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/response-encoding.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/frame-load-cancelled-abort.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/upload-progress-events.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xml-encoding.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/default-content-type-dashboard.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/abort-should-cancel-load.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-whitelist-request-headers.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/uri-resolution-opera-open-008.html
-/sdcard/android/layout_tests/http/tests/loading/preload-img-test.html
-/sdcard/android/layout_tests/http/tests/loading/gmail-assert-on-load.html
-/sdcard/android/layout_tests/http/tests/loading/text-content-type-with-binary-extension.html
-/sdcard/android/layout_tests/http/tests/loading/basic.html
-/sdcard/android/layout_tests/http/tests/loading/slow-parsing-subframe.html
-/sdcard/android/layout_tests/http/tests/loading/deleted-host-in-resource-load-delegate-callback.html
-/sdcard/android/layout_tests/http/tests/loading/bad-scheme-subframe.html
-/sdcard/android/layout_tests/http/tests/loading/location-hash-reload-cycle.html
-/sdcard/android/layout_tests/http/tests/loading/bad-server-subframe.html
-/sdcard/android/layout_tests/http/tests/loading/empty-subframe.html
-/sdcard/android/layout_tests/http/tests/loading/redirect-methods.html
-/sdcard/android/layout_tests/media/video-error-does-not-exist.html
-/sdcard/android/layout_tests/media/audio-constructor.html
-/sdcard/android/layout_tests/media/video-play-empty-events.html
-/sdcard/android/layout_tests/media/video-append-source.html
-/sdcard/android/layout_tests/media/media-load-event.html
-/sdcard/android/layout_tests/media/unsupported-rtsp.html
-/sdcard/android/layout_tests/media/video-dom-autoplay.html
-/sdcard/android/layout_tests/media/video-currentTime-set2.html
-/sdcard/android/layout_tests/media/video-muted.html
-/sdcard/android/layout_tests/media/progress-event.html
-/sdcard/android/layout_tests/media/video-source-type.html
-/sdcard/android/layout_tests/media/audio-delete-while-step-button-clicked.html
-/sdcard/android/layout_tests/media/video-played-reset.html
-/sdcard/android/layout_tests/media/video-seek-past-end-playing.html
-/sdcard/android/layout_tests/media/video-dom-src.html
-/sdcard/android/layout_tests/media/remove-from-document.html
-/sdcard/android/layout_tests/media/video-loop.html
-/sdcard/android/layout_tests/media/video-src-change.html
-/sdcard/android/layout_tests/media/video-seekable.html
-/sdcard/android/layout_tests/media/video-played.html
-/sdcard/android/layout_tests/media/video-played-collapse.html
-/sdcard/android/layout_tests/media/video-click-dblckick-standalone.html
-/sdcard/android/layout_tests/media/video-can-play-type.html
-/sdcard/android/layout_tests/media/video-seeking.html
-/sdcard/android/layout_tests/media/video-controls-transformed.html
-/sdcard/android/layout_tests/media/video-controls-zoomed.html
-/sdcard/android/layout_tests/media/video-src-invalid-remove.html
-/sdcard/android/layout_tests/media/video-volume.html
-/sdcard/android/layout_tests/media/video-size.html
-/sdcard/android/layout_tests/media/controls-right-click-on-timebar.html
-/sdcard/android/layout_tests/media/video-currentTime.html
-/sdcard/android/layout_tests/media/audio-constructor-autobuffer.html
-/sdcard/android/layout_tests/media/broken-video.html
-/sdcard/android/layout_tests/media/video-buffered.html
-/sdcard/android/layout_tests/media/video-load-readyState.html
-/sdcard/android/layout_tests/media/video-load-networkState.html
-/sdcard/android/layout_tests/media/unsupported-tracks.html
-/sdcard/android/layout_tests/media/video-source-add-src.html
-/sdcard/android/layout_tests/media/video-seek-past-end-paused.html
-/sdcard/android/layout_tests/media/media-startTime.html
-/sdcard/android/layout_tests/media/video-source-error.html
-/sdcard/android/layout_tests/media/video-autoplay.html
-/sdcard/android/layout_tests/media/video-controls.html
-/sdcard/android/layout_tests/media/video-canvas-source.html
-/sdcard/android/layout_tests/media/video-timeupdate-during-playback.html
-/sdcard/android/layout_tests/media/video-currentTime-set.html
-/sdcard/android/layout_tests/media/controls-css-overload.html
-/sdcard/android/layout_tests/media/video-source-type-params.html
-/sdcard/android/layout_tests/media/event-attributes.html
-/sdcard/android/layout_tests/media/audio-data-url.html
-/sdcard/android/layout_tests/media/video-src-plus-source.html
-/sdcard/android/layout_tests/media/video-no-autoplay.html
-/sdcard/android/layout_tests/media/video-pause-empty-events.html
-/sdcard/android/layout_tests/media/video-document-types.html
-/sdcard/android/layout_tests/media/video-src-remove.html
-/sdcard/android/layout_tests/media/audio-delete-while-slider-thumb-clicked.html
-/sdcard/android/layout_tests/media/video-error-abort.html
-/sdcard/android/layout_tests/media/video-size-intrinsic-scale.html
-/sdcard/android/layout_tests/media/progress-event-total.html
-/sdcard/android/layout_tests/media/audio-constructor-src.html
-/sdcard/android/layout_tests/media/audio-mpeg-supported.html
-/sdcard/android/layout_tests/plugins/throw-on-dealloc.html
-/sdcard/android/layout_tests/plugins/invoke.html
-/sdcard/android/layout_tests/plugins/plugin-remove-subframe.html
-/sdcard/android/layout_tests/plugins/netscape-identifier-conversion.html
-/sdcard/android/layout_tests/plugins/netscape-invoke-browserfuncs.html
-/sdcard/android/layout_tests/plugins/call-as-function-test.html
-/sdcard/android/layout_tests/plugins/npruntime.html
-/sdcard/android/layout_tests/plugins/netscape-construct.html
-/sdcard/android/layout_tests/plugins/root-object-premature-delete-crash.html
-/sdcard/android/layout_tests/plugins/netscape-get-property-return-value.html
-/sdcard/android/layout_tests/plugins/mouse-events.html
-/sdcard/android/layout_tests/plugins/return-error-from-new-stream-doesnt-invoke-destroy-stream.html
-/sdcard/android/layout_tests/plugins/destroy-stream-twice.html
-/sdcard/android/layout_tests/plugins/jsobjc-simple.html
-/sdcard/android/layout_tests/plugins/embed-attributes-setting.html
-/sdcard/android/layout_tests/plugins/inner-html-display-none.html
-/sdcard/android/layout_tests/plugins/netscape-invoke-default.html
-/sdcard/android/layout_tests/plugins/undefined-property-crash.html
-/sdcard/android/layout_tests/plugins/netscape-plugin-map-data-to-src.html
-/sdcard/android/layout_tests/plugins/netscape-plugin-setwindow-size-2.html
-/sdcard/android/layout_tests/plugins/jsobjc-dom-wrappers.html
-/sdcard/android/layout_tests/plugins/plugin-javascript-access.html
-/sdcard/android/layout_tests/plugins/getintidentifier-special-values.html
-/sdcard/android/layout_tests/plugins/get-empty-url.html
-/sdcard/android/layout_tests/plugins/geturl-replace-query.html
-/sdcard/android/layout_tests/plugins/netscape-destroy-plugin-script-objects.html
-/sdcard/android/layout_tests/plugins/open-and-close-window-with-plugin.html
-/sdcard/android/layout_tests/plugins/netscape-enumerate.html
-/sdcard/android/layout_tests/plugins/get-url-that-the-resource-load-delegate-will-disallow.html
-/sdcard/android/layout_tests/plugins/netscape-plugin-setwindow-size.html
-/sdcard/android/layout_tests/plugins/embed-inside-object.html
-/sdcard/android/layout_tests/plugins/netscape-throw-exception.html
-/sdcard/android/layout_tests/plugins/get-url-with-blank-target.html
-/sdcard/android/layout_tests/plugins/bindings-test.html
-/sdcard/android/layout_tests/scrollbars/scrollbar-miss-mousemove-disabled.html
-/sdcard/android/layout_tests/security/set-form-autocomplete-attribute.html
-/sdcard/android/layout_tests/storage/execute-sql-args.html
-/sdcard/android/layout_tests/transitions/transition-shorthand-delay.html
-/sdcard/android/layout_tests/transitions/transition-drt-api-delay.html
-/sdcard/android/layout_tests/transitions/transition-hit-test.html
-/sdcard/android/layout_tests/transitions/opacity-transition-zindex.html
-/sdcard/android/layout_tests/transitions/interrupted-all-transition.html
-/sdcard/android/layout_tests/transitions/hang-with-bad-transition-list.html
-/sdcard/android/layout_tests/transitions/zero-duration-with-non-zero-delay-end.html
-/sdcard/android/layout_tests/transitions/remove-transition-style.html
-/sdcard/android/layout_tests/transitions/transition-hit-test-transform.html
-/sdcard/android/layout_tests/transitions/repeated-firing-background-color.html
-/sdcard/android/layout_tests/webarchive/loading/test-loading-archive.html
-/sdcard/android/layout_tests/wml/onenterforward-event.html
-/sdcard/android/layout_tests/wml/go-task-get-method-external-deck-with-href.html
-/sdcard/android/layout_tests/wml/option-element-onpick.html
-/sdcard/android/layout_tests/wml/enter-first-card-with-events.html
-/sdcard/android/layout_tests/wml/go-task-get-method-external-deck.html
-/sdcard/android/layout_tests/wml/go-task-get-method-same-deck.html
-/sdcard/android/layout_tests/wml/onenterforward-inline-event.html
-/sdcard/android/layout_tests/wml/ontimer-event.html
-/sdcard/android/layout_tests/wml/variable-reference-invalid-character.html
-/sdcard/android/layout_tests/wml/enter-card-with-events.html
-/sdcard/android/layout_tests/wml/ontimer-inline-event.html
-/sdcard/android/layout_tests/wml/select-element-variables.html
-/sdcard/android/layout_tests/wml/variable-reference-valid.html
-/sdcard/android/layout_tests/wml/access-target-deny.html
-/sdcard/android/layout_tests/wml/input-format.html
-/sdcard/android/layout_tests/wml/access-target.html
-/sdcard/android/layout_tests/wml/newcontext-same-deck.html
diff --git a/tests/DumpRenderTree/assets/results/layout_tests_nontext.txt b/tests/DumpRenderTree/assets/results/layout_tests_nontext.txt
deleted file mode 100644
index 665ef07..0000000
--- a/tests/DumpRenderTree/assets/results/layout_tests_nontext.txt
+++ /dev/null
@@ -1,4280 +0,0 @@
-/sdcard/android/layout_tests/accessibility/image-map1.html
-/sdcard/android/layout_tests/accessibility/aria-labelledby-on-input.html
-/sdcard/android/layout_tests/accessibility/aria-labelledby-stay-within.html
-/sdcard/android/layout_tests/accessibility/table-with-rules.html
-/sdcard/android/layout_tests/accessibility/aria-describedby-on-input.html
-/sdcard/android/layout_tests/accessibility/table-detection.html
-/sdcard/android/layout_tests/accessibility/table-with-aria-role.html
-/sdcard/android/layout_tests/accessibility/image-map2.html
-/sdcard/android/layout_tests/accessibility/table-cell-spans.html
-/sdcard/android/layout_tests/accessibility/table-cells.html
-/sdcard/android/layout_tests/accessibility/lists.html
-/sdcard/android/layout_tests/accessibility/plugin.html
-/sdcard/android/layout_tests/accessibility/table-sections.html
-/sdcard/android/layout_tests/accessibility/table-one-cell.html
-/sdcard/android/layout_tests/accessibility/internal-link-anchors2.html
-/sdcard/android/layout_tests/accessibility/radio-button-group-members.html
-/sdcard/android/layout_tests/accessibility/table-attributes.html
-/sdcard/android/layout_tests/accessibility/input-slider.html
-/sdcard/android/layout_tests/accessibility/aria-tables.html
-/sdcard/android/layout_tests/accessibility/legend.html
-/sdcard/android/layout_tests/accessibility/aria-roles.html
-/sdcard/android/layout_tests/animations/animation-drt-api-multiple-keyframes.html
-/sdcard/android/layout_tests/animations/animation-drt-api.html
-/sdcard/android/layout_tests/compositing/repaint/content-into-overflow.html
-/sdcard/android/layout_tests/compositing/repaint/overflow-into-content.html
-/sdcard/android/layout_tests/compositing/repaint/become-overlay-composited-layer.html
-/sdcard/android/layout_tests/compositing/repaint/layer-repaint-rects.html
-/sdcard/android/layout_tests/compositing/overflow/ancestor-overflow.html
-/sdcard/android/layout_tests/compositing/overflow/overflow-scroll.html
-/sdcard/android/layout_tests/compositing/overflow/overflow-positioning.html
-/sdcard/android/layout_tests/compositing/overflow/parent-overflow.html
-/sdcard/android/layout_tests/compositing/color-matching/image-color-matching.html
-/sdcard/android/layout_tests/compositing/geometry/root-layer-update.html
-/sdcard/android/layout_tests/compositing/geometry/outline-change.html
-/sdcard/android/layout_tests/compositing/reflections/reflection-on-composited.html
-/sdcard/android/layout_tests/compositing/self-painting-layers.html
-/sdcard/android/layout_tests/compositing/direct-image-compositing.html
-/sdcard/android/layout_tests/compositing/layers-inside-overflow-scroll.html
-/sdcard/android/layout_tests/compositing/generated-content.html
-/sdcard/android/layout_tests/compositing/sibling-positioning.html
-/sdcard/android/layout_tests/css1/color_and_background/background_color.html
-/sdcard/android/layout_tests/css1/color_and_background/color.html
-/sdcard/android/layout_tests/css1/color_and_background/background.html
-/sdcard/android/layout_tests/css1/color_and_background/background_repeat.html
-/sdcard/android/layout_tests/css1/color_and_background/background_image.html
-/sdcard/android/layout_tests/css1/color_and_background/background_position.html
-/sdcard/android/layout_tests/css1/color_and_background/background_attachment.html
-/sdcard/android/layout_tests/css1/pseudo/firstline.html
-/sdcard/android/layout_tests/css1/pseudo/pseudo_elements_in_selectors.html
-/sdcard/android/layout_tests/css1/pseudo/multiple_pseudo_elements.html
-/sdcard/android/layout_tests/css1/pseudo/firstletter.html
-/sdcard/android/layout_tests/css1/pseudo/anchor.html
-/sdcard/android/layout_tests/css1/text_properties/text_align.html
-/sdcard/android/layout_tests/css1/text_properties/line_height.html
-/sdcard/android/layout_tests/css1/text_properties/text_transform.html
-/sdcard/android/layout_tests/css1/text_properties/word_spacing.html
-/sdcard/android/layout_tests/css1/text_properties/letter_spacing.html
-/sdcard/android/layout_tests/css1/text_properties/vertical_align.html
-/sdcard/android/layout_tests/css1/text_properties/text_indent.html
-/sdcard/android/layout_tests/css1/text_properties/text_decoration.html
-/sdcard/android/layout_tests/css1/basic/containment.html
-/sdcard/android/layout_tests/css1/basic/id_as_selector.html
-/sdcard/android/layout_tests/css1/basic/comments.html
-/sdcard/android/layout_tests/css1/basic/class_as_selector.html
-/sdcard/android/layout_tests/css1/basic/contextual_selectors.html
-/sdcard/android/layout_tests/css1/basic/inheritance.html
-/sdcard/android/layout_tests/css1/basic/grouping.html
-/sdcard/android/layout_tests/css1/font_properties/font_weight.html
-/sdcard/android/layout_tests/css1/font_properties/font_size.html
-/sdcard/android/layout_tests/css1/font_properties/font.html
-/sdcard/android/layout_tests/css1/font_properties/font_style.html
-/sdcard/android/layout_tests/css1/font_properties/font_family.html
-/sdcard/android/layout_tests/css1/font_properties/font_variant.html
-/sdcard/android/layout_tests/css1/units/percentage_units.html
-/sdcard/android/layout_tests/css1/units/color_units.html
-/sdcard/android/layout_tests/css1/units/length_units.html
-/sdcard/android/layout_tests/css1/units/urls.html
-/sdcard/android/layout_tests/css1/cascade/important.html
-/sdcard/android/layout_tests/css1/cascade/cascade_order.html
-/sdcard/android/layout_tests/css1/box_properties/border_width.html
-/sdcard/android/layout_tests/css1/box_properties/margin.html
-/sdcard/android/layout_tests/css1/box_properties/width.html
-/sdcard/android/layout_tests/css1/box_properties/padding_left.html
-/sdcard/android/layout_tests/css1/box_properties/margin_left_inline.html
-/sdcard/android/layout_tests/css1/box_properties/clear.html
-/sdcard/android/layout_tests/css1/box_properties/border_left_width.html
-/sdcard/android/layout_tests/css1/box_properties/margin_left.html
-/sdcard/android/layout_tests/css1/box_properties/padding_top.html
-/sdcard/android/layout_tests/css1/box_properties/padding_bottom.html
-/sdcard/android/layout_tests/css1/box_properties/border_style_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_top_width_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_top_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_style.html
-/sdcard/android/layout_tests/css1/box_properties/border_top.html
-/sdcard/android/layout_tests/css1/box_properties/margin_bottom_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_bottom_width.html
-/sdcard/android/layout_tests/css1/box_properties/margin_bottom.html
-/sdcard/android/layout_tests/css1/box_properties/float_elements_in_series.html
-/sdcard/android/layout_tests/css1/box_properties/float_on_text_elements.html
-/sdcard/android/layout_tests/css1/box_properties/padding.html
-/sdcard/android/layout_tests/css1/box_properties/border_right_width_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_right_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_right_width.html
-/sdcard/android/layout_tests/css1/box_properties/margin_right.html
-/sdcard/android/layout_tests/css1/box_properties/border_width_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_inline.html
-/sdcard/android/layout_tests/css1/box_properties/clear_float.html
-/sdcard/android/layout_tests/css1/box_properties/border.html
-/sdcard/android/layout_tests/css1/box_properties/padding_left_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_left_width_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_left_inline.html
-/sdcard/android/layout_tests/css1/box_properties/padding_top_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_left.html
-/sdcard/android/layout_tests/css1/box_properties/padding_bottom_inline.html
-/sdcard/android/layout_tests/css1/box_properties/margin_top_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_top_width.html
-/sdcard/android/layout_tests/css1/box_properties/border_bottom_width_inline.html
-/sdcard/android/layout_tests/css1/box_properties/acid_test.html
-/sdcard/android/layout_tests/css1/box_properties/border_bottom_inline.html
-/sdcard/android/layout_tests/css1/box_properties/margin_top.html
-/sdcard/android/layout_tests/css1/box_properties/border_bottom.html
-/sdcard/android/layout_tests/css1/box_properties/padding_right_inline.html
-/sdcard/android/layout_tests/css1/box_properties/float_margin.html
-/sdcard/android/layout_tests/css1/box_properties/padding_right.html
-/sdcard/android/layout_tests/css1/box_properties/padding_inline.html
-/sdcard/android/layout_tests/css1/box_properties/float.html
-/sdcard/android/layout_tests/css1/box_properties/height.html
-/sdcard/android/layout_tests/css1/box_properties/margin_right_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_color_inline.html
-/sdcard/android/layout_tests/css1/box_properties/border_right.html
-/sdcard/android/layout_tests/css1/box_properties/border_color.html
-/sdcard/android/layout_tests/css1/box_properties/margin_inline.html
-/sdcard/android/layout_tests/css1/conformance/forward_compatible_parsing.html
-/sdcard/android/layout_tests/css1/formatting_model/floating_elements.html
-/sdcard/android/layout_tests/css1/formatting_model/horizontal_formatting.html
-/sdcard/android/layout_tests/css1/formatting_model/vertical_formatting.html
-/sdcard/android/layout_tests/css1/formatting_model/height_of_lines.html
-/sdcard/android/layout_tests/css1/formatting_model/inline_elements.html
-/sdcard/android/layout_tests/css1/formatting_model/canvas.html
-/sdcard/android/layout_tests/css1/formatting_model/replaced_elements.html
-/sdcard/android/layout_tests/css1/classification/list_style_type.html
-/sdcard/android/layout_tests/css1/classification/list_style_image.html
-/sdcard/android/layout_tests/css1/classification/list_style_position.html
-/sdcard/android/layout_tests/css1/classification/display.html
-/sdcard/android/layout_tests/css1/classification/list_style.html
-/sdcard/android/layout_tests/css1/classification/white_space.html
-/sdcard/android/layout_tests/css2.1/t040103-ident-03-c.html
-/sdcard/android/layout_tests/css2.1/t0804-c5509-padn-l-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t1205-c563-list-type-00-b.html
-/sdcard/android/layout_tests/css2.1/t090402-c42-ibx-pad-00-d-ag.html
-/sdcard/android/layout_tests/css2.1/t120401-scope-00-b.html
-/sdcard/android/layout_tests/css2.1/t010403-shand-border-00-c.html
-/sdcard/android/layout_tests/css2.1/t0805-c5518-ibrdr-t-00-a.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-03-b.html
-/sdcard/android/layout_tests/css2.1/t1008-c44-ln-box-00-d-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-14-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-34-d.html
-/sdcard/android/layout_tests/css2.1/t1204-implied-00-b.html
-/sdcard/android/layout_tests/css2.1/t1001-abs-pos-cb-03-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-54-d.html
-/sdcard/android/layout_tests/css2.1/t100801-c548-ln-ht-00-c-a.html
-/sdcard/android/layout_tests/css2.1/t0905-c5526-fltclr-00-c-ag.html
-/sdcard/android/layout_tests/css2.1/bogus-color-span.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-74-d.html
-/sdcard/android/layout_tests/css2.1/t0803-c5504-imrgn-l-03-b-a.html
-/sdcard/android/layout_tests/css2.1/t140201-c534-bgreps-04-c-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-94-d.html
-/sdcard/android/layout_tests/css2.1/t0803-c5502-imrgn-r-03-b-a.html
-/sdcard/android/layout_tests/css2.1/t040307-syntax-01-b.html
-/sdcard/android/layout_tests/css2.1/t100801-c548-ln-ht-04-d-ag.html
-/sdcard/android/layout_tests/css2.1/t1508-c527-font-06-b.html
-/sdcard/android/layout_tests/css2.1/t040306-c63-color-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-02-b.html
-/sdcard/android/layout_tests/css2.1/t080301-c411-vt-mrgn-00-b.html
-/sdcard/android/layout_tests/css2.1/t010403-shand-font-03-b.html
-/sdcard/android/layout_tests/css2.1/t051103-c21-focus-ln-00-e-i.html
-/sdcard/android/layout_tests/css2.1/t120403-display-none-00-c.html
-/sdcard/android/layout_tests/css2.1/t0805-c5512-brdr-rw-01-b-g.html
-/sdcard/android/layout_tests/css2.1/t040103-ident-12-c.html
-/sdcard/android/layout_tests/css2.1/t0805-c5515-ibrdr-00-b.html
-/sdcard/android/layout_tests/css2.1/t0805-c5520-brdr-b-00-a.html
-/sdcard/android/layout_tests/css2.1/t1505-c524-font-var-00-b.html
-/sdcard/android/layout_tests/css2.1/t0509-c15-ids-00-a.html
-/sdcard/android/layout_tests/css2.1/t060403-c21-pseu-cls-00-e-i.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-03-d.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-12-b.html
-/sdcard/android/layout_tests/css2.1/t0402-c71-fwd-parsing-04-f.html
-/sdcard/android/layout_tests/css2.1/t040303-c62-percent-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-23-d.html
-/sdcard/android/layout_tests/css2.1/t140201-c535-bg-fixd-00-b-g.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-43-d.html
-/sdcard/android/layout_tests/css2.1/t1204-increment-02-c-o.html
-/sdcard/android/layout_tests/css2.1/t0602-c13-inh-underlin-00-e.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-63-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-83-d.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-16-f.html
-/sdcard/android/layout_tests/css2.1/t040302-c61-phys-len-00-b.html
-/sdcard/android/layout_tests/css2.1/t0805-c5516-ibrdr-c-00-a.html
-/sdcard/android/layout_tests/css2.1/t0805-c5521-brdr-l-01-e.html
-/sdcard/android/layout_tests/css2.1/t100801-c544-valgn-03-d-agi.html
-/sdcard/android/layout_tests/css2.1/t040103-escapes-06-b.html
-/sdcard/android/layout_tests/css2.1/t0402-syntax-03-f.html
-/sdcard/android/layout_tests/css2.1/t050803-c14-classes-00-e.html
-/sdcard/android/layout_tests/css2.1/t140201-c537-bgfxps-00-c-ag.html
-/sdcard/android/layout_tests/css2.1/t1002-c5523-width-02-b-g.html
-/sdcard/android/layout_tests/css2.1/t1004-c5524-width-00-b-g.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-11-b.html
-/sdcard/android/layout_tests/css2.1/t0803-c5504-imrgn-l-06-b-ag.html
-/sdcard/android/layout_tests/css2.1/t0805-c5522-brdr-02-e.html
-/sdcard/android/layout_tests/css2.1/t0511-c21-pseud-anch-00-e-i.html
-/sdcard/android/layout_tests/css2.1/t0804-c5508-ipadn-b-01-f-a.html
-/sdcard/android/layout_tests/css2.1/t0803-c5502-imrgn-r-04-b-ag.html
-/sdcard/android/layout_tests/css2.1/t040103-ident-01-c.html
-/sdcard/android/layout_tests/css2.1/t040102-keywords-00-b.html
-/sdcard/android/layout_tests/css2.1/t0505-c16-descendant-02-e.html
-/sdcard/android/layout_tests/css2.1/t1507-c526-font-sz-03-f-a.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-09-b.html
-/sdcard/android/layout_tests/css2.1/t1204-root-e.html
-/sdcard/android/layout_tests/css2.1/t0905-c414-flt-fit-01-d-g.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-01-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-12-d.html
-/sdcard/android/layout_tests/css2.1/t090501-c5525-flt-r-00-b-g.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-32-d.html
-/sdcard/android/layout_tests/css2.1/t1001-abs-pos-cb-01-b.html
-/sdcard/android/layout_tests/css2.1/t1004-c43-rpl-bbx-00-d-ag.html
-/sdcard/android/layout_tests/css2.1/t140201-c534-bgre-01-b-ag.html
-/sdcard/android/layout_tests/css2.1/t0804-c5509-ipadn-l-02-b-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-52-d.html
-/sdcard/android/layout_tests/css2.1/t0805-c5512-brdr-rw-02-b.html
-/sdcard/android/layout_tests/css2.1/t040109-c17-comments-00-b.html
-/sdcard/android/layout_tests/css2.1/t0804-c5507-ipadn-r-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-72-d.html
-/sdcard/android/layout_tests/css2.1/t140201-c534-bgreps-01-c-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-92-d.html
-/sdcard/android/layout_tests/css2.1/t0905-c414-flt-01-d-g.html
-/sdcard/android/layout_tests/css2.1/t100801-c548-ln-ht-01-b-ag.html
-/sdcard/android/layout_tests/css2.1/t090501-c414-flt-03-b-g.html
-/sdcard/android/layout_tests/css2.1/t1204-multiple-01-c.html
-/sdcard/android/layout_tests/css2.1/t0803-c5505-mrgn-03-c-ag.html
-/sdcard/android/layout_tests/css2.1/t1508-c527-font-04-b.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-00-b.html
-/sdcard/android/layout_tests/css2.1/t1602-c43-center-00-d-ag.html
-/sdcard/android/layout_tests/css2.1/t140201-c532-bgcolor-00-a.html
-/sdcard/android/layout_tests/css2.1/t0803-c5504-mrgn-l-03-c.html
-/sdcard/android/layout_tests/css2.1/t010403-shand-font-01-b.html
-/sdcard/android/layout_tests/css2.1/t1005-c5524-width-01-b-g.html
-/sdcard/android/layout_tests/css2.1/t1601-c547-indent-01-d.html
-/sdcard/android/layout_tests/css2.1/t040103-ident-10-c.html
-/sdcard/android/layout_tests/css2.1/t090501-c414-flt-01-b.html
-/sdcard/android/layout_tests/css2.1/t0803-c5505-mrgn-02-c.html
-/sdcard/android/layout_tests/css2.1/t0905-c414-flt-04-c.html
-/sdcard/android/layout_tests/css2.1/t051103-dom-hover-01-c-io.html
-/sdcard/android/layout_tests/css2.1/t1604-c542-letter-sp-00-b-a.html
-/sdcard/android/layout_tests/css2.1/t040103-ident-08-c.html
-/sdcard/android/layout_tests/css2.1/t120401-scope-02-c.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-01-d.html
-/sdcard/android/layout_tests/css2.1/t0402-c71-fwd-parsing-02-f.html
-/sdcard/android/layout_tests/css2.1/t1204-reset-00-c-o.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-21-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-41-d.html
-/sdcard/android/layout_tests/css2.1/t0905-c5525-fltwidth-01-c-g.html
-/sdcard/android/layout_tests/css2.1/t1507-c526-font-sz-00-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-61-d.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-08-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-81-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-19-d.html
-/sdcard/android/layout_tests/css2.1/t040103-escapes-04-b.html
-/sdcard/android/layout_tests/css2.1/t1604-c541-word-sp-01-b-a.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-39-d.html
-/sdcard/android/layout_tests/css2.1/t1001-abs-pos-cb-08-b.html
-/sdcard/android/layout_tests/css2.1/t0402-syntax-01-f.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-59-d.html
-/sdcard/android/layout_tests/css2.1/t1205-c565-list-pos-00-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-79-d.html
-/sdcard/android/layout_tests/css2.1/t1508-c527-font-10-c.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-99-d.html
-/sdcard/android/layout_tests/css2.1/t0803-c5502-imrgn-r-01-b-ag.html
-/sdcard/android/layout_tests/css2.1/t040306-syntax-01-f.html
-/sdcard/android/layout_tests/css2.1/t1507-c526-font-sz-01-b-a.html
-/sdcard/android/layout_tests/css2.1/t040105-atrule-04-b.html
-/sdcard/android/layout_tests/css2.1/t0505-c16-descendant-00-e.html
-/sdcard/android/layout_tests/css2.1/t0805-c5513-brdr-bw-02-b.html
-/sdcard/android/layout_tests/css2.1/t0805-c5519-brdr-r-01-e.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-07-b.html
-/sdcard/android/layout_tests/css2.1/t0804-c5510-padn-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t0805-c5517-ibrdr-s-00-a.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-10-d.html
-/sdcard/android/layout_tests/css2.1/t040105-import-00-b.html
-/sdcard/android/layout_tests/css2.1/t0804-c5509-ipadn-l-03-b-a.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-30-d.html
-/sdcard/android/layout_tests/css2.1/t0805-c5514-brdr-lw-02-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-50-d.html
-/sdcard/android/layout_tests/css2.1/t0804-c5507-ipadn-r-03-b-a.html
-/sdcard/android/layout_tests/css2.1/t1008-c44-ln-box-02-d-ag.html
-/sdcard/android/layout_tests/css2.1/t0805-c5512-brdr-rw-00-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-70-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-08-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-90-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-28-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-48-d.html
-/sdcard/android/layout_tests/css2.1/t0805-c5513-brdr-bw-01-b-g.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-68-d.html
-/sdcard/android/layout_tests/css2.1/t1402-c45-bg-canvas-00-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-88-d.html
-/sdcard/android/layout_tests/css2.1/t1508-c527-font-02-b.html
-/sdcard/android/layout_tests/css2.1/t0805-c5521-ibrdr-l-00-a.html
-/sdcard/android/layout_tests/css2.1/t0805-c5522-brdr-00-b.html
-/sdcard/android/layout_tests/css2.1/t1606-c562-white-sp-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t0905-c414-flt-02-c.html
-/sdcard/android/layout_tests/css2.1/t100801-c544-valgn-00-a-ag.html
-/sdcard/android/layout_tests/css2.1/t040103-ident-06-c.html
-/sdcard/android/layout_tests/css2.1/t0402-c71-fwd-parsing-00-f.html
-/sdcard/android/layout_tests/css2.1/t1204-reset-02-c-o.html
-/sdcard/android/layout_tests/css2.1/t0602-c13-inheritance-00-e.html
-/sdcard/android/layout_tests/css2.1/t090501-c414-flt-ln-02-d.html
-/sdcard/android/layout_tests/css2.1/t1205-c566-list-stl-01-c-g.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-06-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-17-d.html
-/sdcard/android/layout_tests/css2.1/t100304-c43-rpl-bbx-00-d-g.html
-/sdcard/android/layout_tests/css2.1/t0803-c5504-mrgn-l-00-c-ag.html
-/sdcard/android/layout_tests/css2.1/t1205-c566-list-stl-00-e-ag.html
-/sdcard/android/layout_tests/css2.1/t0905-c5525-fltwidth-03-c-g.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-37-d.html
-/sdcard/android/layout_tests/css2.1/t1001-abs-pos-cb-06-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-57-d.html
-/sdcard/android/layout_tests/css2.1/t0804-c5510-padn-02-f.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-77-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-97-d.html
-/sdcard/android/layout_tests/css2.1/t0803-c5504-imrgn-l-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t090204-display-change-01-b-ao.html
-/sdcard/android/layout_tests/css2.1/t040302-c61-ex-len-00-b-a.html
-/sdcard/android/layout_tests/css2.1/t040105-atrule-02-b.html
-/sdcard/android/layout_tests/css2.1/t0805-c5513-brdr-bw-00-b.html
-/sdcard/android/layout_tests/css2.1/t1508-c527-font-09-b.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-05-b.html
-/sdcard/android/layout_tests/css2.1/t0803-c5502-mrgn-r-02-c.html
-/sdcard/android/layout_tests/css2.1/t0803-c5502-imrgn-r-06-b-ag.html
-/sdcard/android/layout_tests/css2.1/t0804-c5507-padn-r-01-c-a.html
-/sdcard/android/layout_tests/css2.1/t090501-c414-flt-00-d.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-17-d.html
-/sdcard/android/layout_tests/css2.1/t0803-c5504-mrgn-l-01-c-a.html
-/sdcard/android/layout_tests/css2.1/t0805-c5514-brdr-lw-00-b.html
-/sdcard/android/layout_tests/css2.1/t140201-c536-bgpos-01-b-ag.html
-/sdcard/android/layout_tests/css2.1/t100303-c412-blockw-00-d-ag.html
-/sdcard/android/layout_tests/css2.1/t120401-scope-04-d.html
-/sdcard/android/layout_tests/css2.1/t0804-c5506-ipadn-t-01-b-a.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-06-d.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-15-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-26-d.html
-/sdcard/android/layout_tests/css2.1/t0805-c5521-brdr-l-00-a.html
-/sdcard/android/layout_tests/css2.1/t0805-c5511-brdr-tw-02-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-46-d.html
-/sdcard/android/layout_tests/css2.1/t0804-c5507-ipadn-r-02-b-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-66-d.html
-/sdcard/android/layout_tests/css2.1/t140201-c534-bgreps-03-c-ag.html
-/sdcard/android/layout_tests/css2.1/t100801-c544-valgn-02-d-agi.html
-/sdcard/android/layout_tests/css2.1/t0804-c5509-ipadn-l-04-f-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-86-d.html
-/sdcard/android/layout_tests/css2.1/t0805-c5512-ibrdr-rw-00-a.html
-/sdcard/android/layout_tests/css2.1/t1508-c527-font-00-b.html
-/sdcard/android/layout_tests/css2.1/t0905-c5525-fltblck-01-d.html
-/sdcard/android/layout_tests/css2.1/t0402-syntax-06-f.html
-/sdcard/android/layout_tests/css2.1/t100801-c548-ln-ht-03-d-ag.html
-/sdcard/android/layout_tests/css2.1/t0805-c5515-brdr-w-00-a.html
-/sdcard/android/layout_tests/css2.1/t051202-c24-first-lttr-00-b.html
-/sdcard/android/layout_tests/css2.1/t0511-c21-pseud-link-02-e.html
-/sdcard/android/layout_tests/css2.1/t0804-c5510-padn-01-e-a.html
-/sdcard/android/layout_tests/css2.1/t0905-c5525-fltinln-00-c-ag.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-14-b.html
-/sdcard/android/layout_tests/css2.1/t0805-c5518-brdr-t-01-e.html
-/sdcard/android/layout_tests/css2.1/t040105-atkeyw-01-b.html
-/sdcard/android/layout_tests/css2.1/t0805-c5511-brdr-tw-01-b-g.html
-/sdcard/android/layout_tests/css2.1/t040103-ident-04-c.html
-/sdcard/android/layout_tests/css2.1/t1205-c563-list-type-01-b.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-18-f.html
-/sdcard/android/layout_tests/css2.1/t0509-id-sel-syntax-01-f.html
-/sdcard/android/layout_tests/css2.1/t100801-c544-valgn-01-d-ag.html
-/sdcard/android/layout_tests/css2.1/t090501-c414-flt-ln-00-d.html
-/sdcard/android/layout_tests/css2.1/t1601-c547-indent-00-b-a.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-04-b.html
-/sdcard/android/layout_tests/css2.1/t0905-c5525-flthw-00-c-g.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-15-d.html
-/sdcard/android/layout_tests/css2.1/t0805-c5522-brdr-01-b-g.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-35-d.html
-/sdcard/android/layout_tests/css2.1/t040103-escapes-00-b.html
-/sdcard/android/layout_tests/css2.1/t1001-abs-pos-cb-04-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-55-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-75-d.html
-/sdcard/android/layout_tests/css2.1/t1205-c564-list-img-00-b-g.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-95-d.html
-/sdcard/android/layout_tests/css2.1/t120403-visibility-00-c.html
-/sdcard/android/layout_tests/css2.1/t0803-c5502-imrgn-r-02-b-a.html
-/sdcard/android/layout_tests/css2.1/t051103-c21-activ-ln-00-e-i.html
-/sdcard/android/layout_tests/css2.1/t0801-c412-hz-box-00-b-a.html
-/sdcard/android/layout_tests/css2.1/t090501-c414-flt-02-d-g.html
-/sdcard/android/layout_tests/css2.1/t1605-c545-txttrans-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t040105-atrule-00-b.html
-/sdcard/android/layout_tests/css2.1/t100801-c548-leadin-00-d-a.html
-/sdcard/android/layout_tests/css2.1/t0803-c5504-imrgn-l-05-b-ag.html
-/sdcard/android/layout_tests/css2.1/t0804-c5508-ipadn-b-03-b-a.html
-/sdcard/android/layout_tests/css2.1/t1508-c527-font-07-b.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-03-b.html
-/sdcard/android/layout_tests/css2.1/t040103-ident-13-c.html
-/sdcard/android/layout_tests/css2.1/t1204-order-01-d.html
-/sdcard/android/layout_tests/css2.1/t0804-c5510-ipadn-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-04-d.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-13-b.html
-/sdcard/android/layout_tests/css2.1/t140201-c534-bgre-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t1504-c523-font-style-00-b.html
-/sdcard/android/layout_tests/css2.1/t0804-c5509-ipadn-l-01-b-ag.html
-/sdcard/android/layout_tests/css2.1/t0803-c5502-mrgn-r-01-c-a.html
-/sdcard/android/layout_tests/css2.1/t1204-increment-01-c-o.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-24-d.html
-/sdcard/android/layout_tests/css2.1/t0805-c5511-brdr-tw-00-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-44-d.html
-/sdcard/android/layout_tests/css2.1/t140201-c534-bgreps-00-c-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-64-d.html
-/sdcard/android/layout_tests/css2.1/t1204-implied-02-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-84-d.html
-/sdcard/android/layout_tests/css2.1/t0805-c5521-brdr-l-02-e.html
-/sdcard/android/layout_tests/css2.1/t040103-escapes-07-b.html
-/sdcard/android/layout_tests/css2.1/t0804-c5507-padn-r-02-f.html
-/sdcard/android/layout_tests/css2.1/t0402-syntax-04-f.html
-/sdcard/android/layout_tests/css2.1/t1002-c5523-width-01-b-g.html
-/sdcard/android/layout_tests/css2.1/t0805-c5519-brdr-r-00-a.html
-/sdcard/android/layout_tests/css2.1/t0511-c21-pseud-link-00-e.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-12-b.html
-/sdcard/android/layout_tests/css2.1/t040103-ident-02-c.html
-/sdcard/android/layout_tests/css2.1/t040102-keywords-01-b.html
-/sdcard/android/layout_tests/css2.1/t0803-c5503-imrgn-b-00-b-a.html
-/sdcard/android/layout_tests/css2.1/t0805-c5513-ibrdr-bw-00-a.html
-/sdcard/android/layout_tests/css2.1/css1_forward_compatible_parsing.html
-/sdcard/android/layout_tests/css2.1/t0804-c5509-padn-l-03-f-g.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-02-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-13-d.html
-/sdcard/android/layout_tests/css2.1/t0905-c5526-flthw-00-c-g.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-33-d.html
-/sdcard/android/layout_tests/css2.1/t1001-abs-pos-cb-02-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-53-d.html
-/sdcard/android/layout_tests/css2.1/t0805-c5512-brdr-rw-03-b.html
-/sdcard/android/layout_tests/css2.1/t040109-c17-comments-01-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-73-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-93-d.html
-/sdcard/android/layout_tests/css2.1/t0805-c5511-ibrdr-tw-00-a.html
-/sdcard/android/layout_tests/css2.1/t0803-c5504-imrgn-l-02-b-ag.html
-/sdcard/android/layout_tests/css2.1/t0803-c5502-imrgn-r-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t1508-c527-font-05-b.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-01-b.html
-/sdcard/android/layout_tests/css2.1/t1005-c5524-width-00-b-g.html
-/sdcard/android/layout_tests/css2.1/t0905-c414-flt-wrap-01-d-g.html
-/sdcard/android/layout_tests/css2.1/t010403-shand-font-02-b.html
-/sdcard/android/layout_tests/css2.1/t0805-c5515-brdr-w-02-b.html
-/sdcard/android/layout_tests/css2.1/t060401-c32-cascading-00-b.html
-/sdcard/android/layout_tests/css2.1/t0905-c5525-fltcont-00-d-g.html
-/sdcard/android/layout_tests/css2.1/t040103-ident-11-c.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-16-c.html
-/sdcard/android/layout_tests/css2.1/t0509-id-sel-syntax-02-b.html
-/sdcard/android/layout_tests/css2.1/t090501-c5525-flt-l-00-b-g.html
-/sdcard/android/layout_tests/css2.1/t040103-ident-09-c.html
-/sdcard/android/layout_tests/css2.1/t050201-c12-grouping-00-b.html
-/sdcard/android/layout_tests/css2.1/t120401-scope-03-c.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-02-d.html
-/sdcard/android/layout_tests/css2.1/t0905-c414-flt-wrap-00-e.html
-/sdcard/android/layout_tests/css2.1/t0402-c71-fwd-parsing-03-f.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-11-b.html
-/sdcard/android/layout_tests/css2.1/t1506-c525-font-wt-00-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-22-d.html
-/sdcard/android/layout_tests/css2.1/t1008-c44-ln-box-01-d-ag.html
-/sdcard/android/layout_tests/css2.1/t0905-c5525-fltwidth-00-c-g.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-42-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-62-d.html
-/sdcard/android/layout_tests/css2.1/t0905-c5525-fltmult-00-d-g.html
-/sdcard/android/layout_tests/css2.1/t1401-c531-color-00-a.html
-/sdcard/android/layout_tests/css2.1/t0805-c5514-ibrdr-lw-00-a.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-09-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-82-d.html
-/sdcard/android/layout_tests/css2.1/t1604-c541-word-sp-00-b-a.html
-/sdcard/android/layout_tests/css2.1/t0805-c5515-brdr-w-01-b-g.html
-/sdcard/android/layout_tests/css2.1/t0804-c5507-ipadn-r-04-b-ag.html
-/sdcard/android/layout_tests/css2.1/t1001-abs-pos-cb-09-b.html
-/sdcard/android/layout_tests/css2.1/t140201-c534-bgreps-05-c-ag.html
-/sdcard/android/layout_tests/css2.1/t0402-syntax-02-f.html
-/sdcard/android/layout_tests/css2.1/t0803-c5503-mrgn-b-00-b-a.html
-/sdcard/android/layout_tests/css2.1/t0805-c5517-brdr-s-00-c.html
-/sdcard/android/layout_tests/css2.1/t0805-c5514-brdr-lw-01-b-g.html
-/sdcard/android/layout_tests/css2.1/t100801-c42-ibx-ht-00-d-a.html
-/sdcard/android/layout_tests/css2.1/t040103-ident-00-c.html
-/sdcard/android/layout_tests/css2.1/t0805-c5513-brdr-bw-03-b.html
-/sdcard/android/layout_tests/css2.1/t0804-c5506-padn-t-00-b-a.html
-/sdcard/android/layout_tests/css2.1/t0505-c16-descendant-01-e.html
-/sdcard/android/layout_tests/css2.1/t0805-c5519-brdr-r-02-e.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-08-b.html
-/sdcard/android/layout_tests/css2.1/t051103-c21-hover-ln-00-e-i.html
-/sdcard/android/layout_tests/css2.1/t120403-content-none-00-c.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-00-b.html
-/sdcard/android/layout_tests/css2.1/t040105-import-01-b.html
-/sdcard/android/layout_tests/css2.1/t040103-case-01-c.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-11-d.html
-/sdcard/android/layout_tests/css2.1/t09-c5526c-display-00-e.html
-/sdcard/android/layout_tests/css2.1/t0905-c5525-fltblck-00-d-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-31-d.html
-/sdcard/android/layout_tests/css2.1/t0805-c5514-brdr-lw-03-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-51-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-71-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-09-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-91-d.html
-/sdcard/android/layout_tests/css2.1/t0905-c5525-fltwrap-00-b.html
-/sdcard/android/layout_tests/css2.1/t0905-c414-flt-fit-00-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-29-d.html
-/sdcard/android/layout_tests/css2.1/t0803-c5505-mrgn-01-e-a.html
-/sdcard/android/layout_tests/css2.1/t0803-c5502-mrgn-r-00-c-ag.html
-/sdcard/android/layout_tests/css2.1/t1004-c43-rpl-ibx-00-d-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-49-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-69-d.html
-/sdcard/android/layout_tests/css2.1/t1204-multiple-00-c.html
-/sdcard/android/layout_tests/css2.1/t140201-c533-bgimage-01-b-g.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-89-d.html
-/sdcard/android/layout_tests/css2.1/t1508-c527-font-03-b.html
-/sdcard/android/layout_tests/css2.1/t0803-c5504-mrgn-l-02-c.html
-/sdcard/android/layout_tests/css2.1/t0805-c5518-brdr-t-00-a.html
-/sdcard/android/layout_tests/css2.1/t010403-shand-font-00-b.html
-/sdcard/android/layout_tests/css2.1/t0510-c25-pseudo-elmnt-00-c.html
-/sdcard/android/layout_tests/css2.1/t0803-c5505-imrgn-00-a-ag.html
-/sdcard/android/layout_tests/css2.1/t0803-c5502-imrgn-r-05-b-ag.html
-/sdcard/android/layout_tests/css2.1/t060402-c31-important-00-b.html
-/sdcard/android/layout_tests/css2.1/t0905-c414-flt-00-d.html
-/sdcard/android/layout_tests/css2.1/t0905-c414-flt-03-c.html
-/sdcard/android/layout_tests/css2.1/t040103-ident-07-c.html
-/sdcard/android/layout_tests/css2.1/t1204-order-00-c.html
-/sdcard/android/layout_tests/css2.1/t120401-scope-01-c.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-00-d.html
-/sdcard/android/layout_tests/css2.1/t0402-c71-fwd-parsing-01-f.html
-/sdcard/android/layout_tests/css2.1/t1604-c542-letter-sp-01-b-a.html
-/sdcard/android/layout_tests/css2.1/t0805-c5520-brdr-b-01-e.html
-/sdcard/android/layout_tests/css2.1/t140201-c536-bgpos-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-20-d.html
-/sdcard/android/layout_tests/css2.1/t0509-c15-ids-01-e.html
-/sdcard/android/layout_tests/css2.1/t1204-reset-01-c-o.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-40-d.html
-/sdcard/android/layout_tests/css2.1/t090501-c414-flt-ln-03-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-60-d.html
-/sdcard/android/layout_tests/css2.1/t0905-c5525-fltwidth-02-c-g.html
-/sdcard/android/layout_tests/css2.1/t0905-c5525-fltclr-00-c-ag.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-07-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-80-d.html
-/sdcard/android/layout_tests/css2.1/t1204-implied-01-c.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-18-d.html
-/sdcard/android/layout_tests/css2.1/t0804-c5507-ipadn-r-01-b-ag.html
-/sdcard/android/layout_tests/css2.1/t040103-escapes-03-b.html
-/sdcard/android/layout_tests/css2.1/t140201-c534-bgreps-02-c-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-38-d.html
-/sdcard/android/layout_tests/css2.1/t1001-abs-pos-cb-07-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-58-d.html
-/sdcard/android/layout_tests/css2.1/t0803-c5505-mrgn-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t100801-c544-valgn-04-d-agi.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-78-d.html
-/sdcard/android/layout_tests/css2.1/t100801-c548-ln-ht-02-b-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-98-d.html
-/sdcard/android/layout_tests/css2.1/t0804-c5508-ipadn-b-00-b-a.html
-/sdcard/android/layout_tests/css2.1/t0804-c5509-padn-l-01-b-a.html
-/sdcard/android/layout_tests/css2.1/t040105-atrule-03-b.html
-/sdcard/android/layout_tests/css2.1/t1507-c526-font-sz-02-b-a.html
-/sdcard/android/layout_tests/css2.1/t0805-c5522-ibrdr-00-a.html
-/sdcard/android/layout_tests/css2.1/t0803-c5502-mrgn-r-03-c.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-06-b.html
-/sdcard/android/layout_tests/css2.1/t0905-c5525-fltmrgn-00-c-ag.html
-/sdcard/android/layout_tests/css2.1/t051103-dom-hover-02-c-io.html
-/sdcard/android/layout_tests/css2.1/t0804-c5506-ipadn-t-00-b-a.html
-/sdcard/android/layout_tests/css2.1/t040304-c64-uri-00-a-g.html
-/sdcard/android/layout_tests/css2.1/t0803-c5501-mrgn-t-00-b-a.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-07-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-27-d.html
-/sdcard/android/layout_tests/css2.1/t0805-c5511-brdr-tw-03-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-47-d.html
-/sdcard/android/layout_tests/css2.1/t060403-c21-pseu-id-00-e-i.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-67-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-87-d.html
-/sdcard/android/layout_tests/css2.1/t1508-c527-font-01-b.html
-/sdcard/android/layout_tests/css2.1/t0603-c11-import-00-b.html
-/sdcard/android/layout_tests/css2.1/t0803-c5504-imrgn-l-04-b-ag.html
-/sdcard/android/layout_tests/css2.1/t1503-c522-font-family-00-b.html
-/sdcard/android/layout_tests/css2.1/t090501-c414-flt-ln-01-d-g.html
-/sdcard/android/layout_tests/css2.1/t0511-c21-pseud-link-03-e.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-15-b.html
-/sdcard/android/layout_tests/css2.1/t040105-atkeyw-02-b.html
-/sdcard/android/layout_tests/css2.1/t0805-c5519-ibrdr-r-00-a.html
-/sdcard/android/layout_tests/css2.1/t040103-ident-05-c.html
-/sdcard/android/layout_tests/css2.1/t0602-inherit-bdr-pad-b-00.html
-/sdcard/android/layout_tests/css2.1/t040302-c61-rel-len-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t0804-c5507-padn-r-00-c-ag.html
-/sdcard/android/layout_tests/css2.1/t0804-c5509-ipadn-l-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t0805-c5520-ibrdr-b-00-a.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-05-b.html
-/sdcard/android/layout_tests/css2.1/t1008-c44-ln-box-03-d-ag.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-16-d.html
-/sdcard/android/layout_tests/css2.1/t040103-escapes-01-b.html
-/sdcard/android/layout_tests/css2.1/t100304-c43-rpl-bbx-01-d-g.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-36-d.html
-/sdcard/android/layout_tests/css2.1/t1001-abs-pos-cb-05-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-56-d.html
-/sdcard/android/layout_tests/css2.1/t0804-c5509-padn-l-02-f.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-76-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-96-d.html
-/sdcard/android/layout_tests/css2.1/t051202-c26-psudo-nest-00-c.html
-/sdcard/android/layout_tests/css2.1/t040105-atrule-01-b.html
-/sdcard/android/layout_tests/css2.1/t0804-c5508-ipadn-b-02-b-a.html
-/sdcard/android/layout_tests/css2.1/t0803-c5501-imrgn-t-00-b-ag.html
-/sdcard/android/layout_tests/css2.1/t140201-c532-bgcolor-01-b.html
-/sdcard/android/layout_tests/css2.1/t1508-c527-font-08-b.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-04-b.html
-/sdcard/android/layout_tests/css2.1/t040103-case-00-b.html
-/sdcard/android/layout_tests/css2.1/t1504-c543-txt-decor-00-d-g.html
-/sdcard/android/layout_tests/css2.1/t0805-c5516-brdr-c-00-a.html
-/sdcard/android/layout_tests/css2.1/t0804-c5506-ipadn-t-02-b-a.html
-/sdcard/android/layout_tests/css2.1/t1204-increment-00-c-o.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-05-d.html
-/sdcard/android/layout_tests/css2.1/t1202-counter-14-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-25-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-45-d.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-65-d.html
-/sdcard/android/layout_tests/css2.1/t040103-escapes-02-d.html
-/sdcard/android/layout_tests/css2.1/t1602-c546-txt-align-00-b.html
-/sdcard/android/layout_tests/css2.1/t170602-bdr-conflct-w-85-d.html
-/sdcard/android/layout_tests/css2.1/t040103-escapes-05-c.html
-/sdcard/android/layout_tests/css2.1/t040103-escapes-08-b.html
-/sdcard/android/layout_tests/css2.1/t0803-c5504-imrgn-l-01-b-ag.html
-/sdcard/android/layout_tests/css2.1/t1002-c5523-width-00-b-g.html
-/sdcard/android/layout_tests/css2.1/t0804-c5507-padn-r-03-f.html
-/sdcard/android/layout_tests/css2.1/t0402-syntax-05-f.html
-/sdcard/android/layout_tests/css2.1/t1205-c561-list-displ-00-b.html
-/sdcard/android/layout_tests/css2.1/t0511-c21-pseud-link-01-e.html
-/sdcard/android/layout_tests/css2.1/t051201-c23-first-line-00-b.html
-/sdcard/android/layout_tests/css2.1/t1202-counters-13-b.html
-/sdcard/android/layout_tests/css2.1/t140201-c533-bgimage-00-a.html
-/sdcard/android/layout_tests/css2.1/t040105-atkeyw-00-b.html
-/sdcard/android/layout_tests/css3/css3-modsel-33.html
-/sdcard/android/layout_tests/css3/css3-modsel-35.html
-/sdcard/android/layout_tests/css3/css3-modsel-36.html
-/sdcard/android/layout_tests/css3/css3-modsel-37.html
-/sdcard/android/layout_tests/editing/input/emacs-ctrl-o.html
-/sdcard/android/layout_tests/editing/style/style-3681552-fix-001.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-013.html
-/sdcard/android/layout_tests/editing/style/style-3690704-fix.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-005.html
-/sdcard/android/layout_tests/editing/style/style-boundary-002.html
-/sdcard/android/layout_tests/editing/style/remove-underline-after-paragraph.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-009.html
-/sdcard/android/layout_tests/editing/style/5228141.html
-/sdcard/android/layout_tests/editing/style/block-style-004.html
-/sdcard/android/layout_tests/editing/style/apple-style-editable-mix.html
-/sdcard/android/layout_tests/editing/style/unbold-in-bold.html
-/sdcard/android/layout_tests/editing/style/typing-style-001.html
-/sdcard/android/layout_tests/editing/style/relative-font-size-change-004.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-010.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-002.html
-/sdcard/android/layout_tests/editing/style/style-3681552-fix-002.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-006.html
-/sdcard/android/layout_tests/editing/style/style-boundary-003.html
-/sdcard/android/layout_tests/editing/style/block-style-001.html
-/sdcard/android/layout_tests/editing/style/smoosh-styles-001.html
-/sdcard/android/layout_tests/editing/style/font-family-with-space.html
-/sdcard/android/layout_tests/editing/style/5084241.html
-/sdcard/android/layout_tests/editing/style/5065910.html
-/sdcard/android/layout_tests/editing/style/block-style-005.html
-/sdcard/android/layout_tests/editing/style/remove-underline-across-paragraph-in-bold.html
-/sdcard/android/layout_tests/editing/style/5279521.html
-/sdcard/android/layout_tests/editing/style/non-inheritable-styles.html
-/sdcard/android/layout_tests/editing/style/5046875-1.html
-/sdcard/android/layout_tests/editing/style/style-3998892-fix.html
-/sdcard/android/layout_tests/editing/style/typing-style-002.html
-/sdcard/android/layout_tests/editing/style/relative-font-size-change-001.html
-/sdcard/android/layout_tests/editing/style/4916887.html
-/sdcard/android/layout_tests/editing/style/remove-underline-across-paragraph.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-011.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-003.html
-/sdcard/android/layout_tests/editing/style/remove-underline.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-007.html
-/sdcard/android/layout_tests/editing/style/style-boundary-004.html
-/sdcard/android/layout_tests/editing/style/5017613-1.html
-/sdcard/android/layout_tests/editing/style/block-style-002.html
-/sdcard/android/layout_tests/editing/style/block-style-006.html
-/sdcard/android/layout_tests/editing/style/fontsize-1.html
-/sdcard/android/layout_tests/editing/style/5046875-2.html
-/sdcard/android/layout_tests/editing/style/typing-style-003.html
-/sdcard/android/layout_tests/editing/style/relative-font-size-change-002.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-012.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-004.html
-/sdcard/android/layout_tests/editing/style/designmode.html
-/sdcard/android/layout_tests/editing/style/block-styles-007.html
-/sdcard/android/layout_tests/editing/style/style-boundary-001.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-008.html
-/sdcard/android/layout_tests/editing/style/style-boundary-005.html
-/sdcard/android/layout_tests/editing/style/5017613-2.html
-/sdcard/android/layout_tests/editing/style/underline.html
-/sdcard/android/layout_tests/editing/style/block-style-003.html
-/sdcard/android/layout_tests/editing/style/smoosh-styles-003.html
-/sdcard/android/layout_tests/editing/style/remove-underline-after-paragraph-in-bold.html
-/sdcard/android/layout_tests/editing/style/highlight.html
-/sdcard/android/layout_tests/editing/style/relative-font-size-change-003.html
-/sdcard/android/layout_tests/editing/style/table-selection.html
-/sdcard/android/layout_tests/editing/style/create-block-for-style-001.html
-/sdcard/android/layout_tests/editing/unsupported-content/table-delete-001.html
-/sdcard/android/layout_tests/editing/unsupported-content/table-type-after.html
-/sdcard/android/layout_tests/editing/unsupported-content/table-delete-002.html
-/sdcard/android/layout_tests/editing/unsupported-content/table-type-before.html
-/sdcard/android/layout_tests/editing/unsupported-content/table-delete-003.html
-/sdcard/android/layout_tests/editing/unsupported-content/list-delete-001.html
-/sdcard/android/layout_tests/editing/unsupported-content/list-type-after.html
-/sdcard/android/layout_tests/editing/unsupported-content/list-type-before.html
-/sdcard/android/layout_tests/editing/unsupported-content/list-delete-003.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-011.html
-/sdcard/android/layout_tests/editing/inserting/4960120-1.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-023.html
-/sdcard/android/layout_tests/editing/inserting/insert-paragraph-04.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-007.html
-/sdcard/android/layout_tests/editing/inserting/5058163-2.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-019.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-at-tabspan-003.html
-/sdcard/android/layout_tests/editing/inserting/5607069-2.html
-/sdcard/android/layout_tests/editing/inserting/6633727.html
-/sdcard/android/layout_tests/editing/inserting/6703873.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-003.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-003.html
-/sdcard/android/layout_tests/editing/inserting/4875189-1.html
-/sdcard/android/layout_tests/editing/inserting/typing-003.html
-/sdcard/android/layout_tests/editing/inserting/insert-3907422-fix.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-020.html
-/sdcard/android/layout_tests/editing/inserting/before-after-input-element.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-004.html
-/sdcard/android/layout_tests/editing/inserting/insert-paragraph-01.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-016.html
-/sdcard/android/layout_tests/editing/inserting/5510537.html
-/sdcard/android/layout_tests/editing/inserting/4959067.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-008.html
-/sdcard/android/layout_tests/editing/inserting/insert-text-at-tabspan-001.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-001.html
-/sdcard/android/layout_tests/editing/inserting/paragraph-separator-02.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-013.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-025.html
-/sdcard/android/layout_tests/editing/inserting/insert-3654864-fix.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-009.html
-/sdcard/android/layout_tests/editing/inserting/return-key-with-selection-002.html
-/sdcard/android/layout_tests/editing/inserting/editable-html-element.html
-/sdcard/android/layout_tests/editing/inserting/5418891.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-005.html
-/sdcard/android/layout_tests/editing/inserting/insert-tab-002.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-005.html
-/sdcard/android/layout_tests/editing/inserting/line-break.html
-/sdcard/android/layout_tests/editing/inserting/5549929-3.html
-/sdcard/android/layout_tests/editing/inserting/typing-tab-designmode-forms.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-010.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-022.html
-/sdcard/android/layout_tests/editing/inserting/insert-paragraph-03.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-006.html
-/sdcard/android/layout_tests/editing/inserting/5058163-1.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-018.html
-/sdcard/android/layout_tests/editing/inserting/paragraph-separator-in-table-2.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-at-tabspan-002.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-002.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-002.html
-/sdcard/android/layout_tests/editing/inserting/typing-002.html
-/sdcard/android/layout_tests/editing/inserting/insert-3800346-fix.html
-/sdcard/android/layout_tests/editing/inserting/typing-around-image-001.html
-/sdcard/android/layout_tests/editing/inserting/insert-text-at-tabspan-003.html
-/sdcard/android/layout_tests/editing/inserting/insert-text-with-newlines.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-003.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-015.html
-/sdcard/android/layout_tests/editing/inserting/insert-at-end-02.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-027.html
-/sdcard/android/layout_tests/editing/inserting/insert-3659587-fix.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-007.html
-/sdcard/android/layout_tests/editing/inserting/insert-tab-004.html
-/sdcard/android/layout_tests/editing/inserting/editable-inline-element.html
-/sdcard/android/layout_tests/editing/inserting/paragraph-separator-01.html
-/sdcard/android/layout_tests/editing/inserting/insert-3851164-fix.html
-/sdcard/android/layout_tests/editing/inserting/5156401-2.html
-/sdcard/android/layout_tests/editing/inserting/4960120-2.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-012.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-024.html
-/sdcard/android/layout_tests/editing/inserting/multiple-lines-selected.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-008.html
-/sdcard/android/layout_tests/editing/inserting/insert-paragraph-05.html
-/sdcard/android/layout_tests/editing/inserting/insert-3778059-fix.html
-/sdcard/android/layout_tests/editing/inserting/return-key-with-selection-001.html
-/sdcard/android/layout_tests/editing/inserting/5607069-3.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-004.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-004.html
-/sdcard/android/layout_tests/editing/inserting/insert-tab-001.html
-/sdcard/android/layout_tests/editing/inserting/4875189-2.html
-/sdcard/android/layout_tests/editing/inserting/5549929-2.html
-/sdcard/android/layout_tests/editing/inserting/editing-empty-divs.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-021.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-005.html
-/sdcard/android/layout_tests/editing/inserting/insert-paragraph-02.html
-/sdcard/android/layout_tests/editing/inserting/insert-3786362-fix.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-017.html
-/sdcard/android/layout_tests/editing/inserting/paragraph-separator-in-table-1.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-at-tabspan-001.html
-/sdcard/android/layout_tests/editing/inserting/insert-space-in-empty-doc.html
-/sdcard/android/layout_tests/editing/inserting/insert-after-delete-001.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-001.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-001.html
-/sdcard/android/layout_tests/editing/inserting/typing-001.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-009.html
-/sdcard/android/layout_tests/editing/inserting/4278698.html
-/sdcard/android/layout_tests/editing/inserting/insert-text-at-tabspan-002.html
-/sdcard/android/layout_tests/editing/inserting/5002441.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-002.html
-/sdcard/android/layout_tests/editing/inserting/paragraph-separator-03.html
-/sdcard/android/layout_tests/editing/inserting/12882.html
-/sdcard/android/layout_tests/editing/inserting/insert-3775316-fix.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-014.html
-/sdcard/android/layout_tests/editing/inserting/edited-whitespace-1.html
-/sdcard/android/layout_tests/editing/inserting/insert-at-end-01.html
-/sdcard/android/layout_tests/editing/inserting/insert-div-026.html
-/sdcard/android/layout_tests/editing/inserting/break-blockquote-after-delete.html
-/sdcard/android/layout_tests/editing/inserting/redo.html
-/sdcard/android/layout_tests/editing/inserting/4840662.html
-/sdcard/android/layout_tests/editing/inserting/typing-around-br-001.html
-/sdcard/android/layout_tests/editing/inserting/return-key-with-selection-003.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-006.html
-/sdcard/android/layout_tests/editing/inserting/insert-tab-003.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-006.html
-/sdcard/android/layout_tests/editing/execCommand/5142012-1.html
-/sdcard/android/layout_tests/editing/execCommand/hilitecolor.html
-/sdcard/android/layout_tests/editing/execCommand/format-block-with-braces.html
-/sdcard/android/layout_tests/editing/execCommand/outdent-blockquote-test3.html
-/sdcard/android/layout_tests/editing/execCommand/4920742-1.html
-/sdcard/android/layout_tests/editing/execCommand/4924441.html
-/sdcard/android/layout_tests/editing/execCommand/create-list-with-hr.html
-/sdcard/android/layout_tests/editing/execCommand/format-block-with-trailing-br.html
-/sdcard/android/layout_tests/editing/execCommand/remove-formatting-2.html
-/sdcard/android/layout_tests/editing/execCommand/outdent-selection.html
-/sdcard/android/layout_tests/editing/execCommand/strikethroughSelection.html
-/sdcard/android/layout_tests/editing/execCommand/5482023.html
-/sdcard/android/layout_tests/editing/execCommand/4786404-1.html
-/sdcard/android/layout_tests/editing/execCommand/remove-formatting.html
-/sdcard/android/layout_tests/editing/execCommand/findString.html
-/sdcard/android/layout_tests/editing/execCommand/italicizeByCharacter.html
-/sdcard/android/layout_tests/editing/execCommand/create-list-from-range-selection.html
-/sdcard/android/layout_tests/editing/execCommand/5190926.html
-/sdcard/android/layout_tests/editing/execCommand/insertHorizontalRule.html
-/sdcard/android/layout_tests/editing/execCommand/paste-1.html
-/sdcard/android/layout_tests/editing/execCommand/nsresponder-outdent.html
-/sdcard/android/layout_tests/editing/execCommand/toggle-compound-styles.html
-/sdcard/android/layout_tests/editing/execCommand/5080333-2.html
-/sdcard/android/layout_tests/editing/execCommand/outdent-blockquote-test2.html
-/sdcard/android/layout_tests/editing/execCommand/5049671.html
-/sdcard/android/layout_tests/editing/execCommand/4920488.html
-/sdcard/android/layout_tests/editing/execCommand/nsresponder-indent.html
-/sdcard/android/layout_tests/editing/execCommand/indent-list-item.html
-/sdcard/android/layout_tests/editing/execCommand/4916402.html
-/sdcard/android/layout_tests/editing/execCommand/5138441.html
-/sdcard/android/layout_tests/editing/execCommand/insert-list-empty-div.html
-/sdcard/android/layout_tests/editing/execCommand/5481523.html
-/sdcard/android/layout_tests/editing/execCommand/print.html
-/sdcard/android/layout_tests/editing/execCommand/4641880-2.html
-/sdcard/android/layout_tests/editing/execCommand/4580583-2.html
-/sdcard/android/layout_tests/editing/execCommand/remove-list-item-1.html
-/sdcard/android/layout_tests/editing/execCommand/5569741.html
-/sdcard/android/layout_tests/editing/execCommand/findString-2.html
-/sdcard/android/layout_tests/editing/execCommand/modifyForeColorByCharacter.html
-/sdcard/android/layout_tests/editing/execCommand/5142012-2.html
-/sdcard/android/layout_tests/editing/execCommand/find-after-replace.html
-/sdcard/android/layout_tests/editing/execCommand/outdent-blockquote-test4.html
-/sdcard/android/layout_tests/editing/execCommand/format-block.html
-/sdcard/android/layout_tests/editing/execCommand/5080333-1.html
-/sdcard/android/layout_tests/editing/execCommand/remove-list-from-range-selection.html
-/sdcard/android/layout_tests/editing/execCommand/outdent-blockquote-test1.html
-/sdcard/android/layout_tests/editing/execCommand/5136770.html
-/sdcard/android/layout_tests/editing/execCommand/4916541.html
-/sdcard/android/layout_tests/editing/execCommand/4786404-2.html
-/sdcard/android/layout_tests/editing/execCommand/insertImage.html
-/sdcard/android/layout_tests/editing/execCommand/insert-list-and-stitch.html
-/sdcard/android/layout_tests/editing/execCommand/5573879.html
-/sdcard/android/layout_tests/editing/execCommand/4641880-1.html
-/sdcard/android/layout_tests/editing/execCommand/4580583-1.html
-/sdcard/android/layout_tests/editing/execCommand/4747450.html
-/sdcard/android/layout_tests/editing/execCommand/format-block-from-range-selection.html
-/sdcard/android/layout_tests/editing/execCommand/indent-empty-root.html
-/sdcard/android/layout_tests/editing/execCommand/indent-selection.html
-/sdcard/android/layout_tests/editing/execCommand/selectAll.html
-/sdcard/android/layout_tests/editing/execCommand/paste-2.html
-/sdcard/android/layout_tests/editing/pasteboard/subframe-dragndrop-1.html
-/sdcard/android/layout_tests/editing/pasteboard/innerText-inline-table.html
-/sdcard/android/layout_tests/editing/pasteboard/5156401-1.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-list-001.html
-/sdcard/android/layout_tests/editing/pasteboard/4242293-1.html
-/sdcard/android/layout_tests/editing/pasteboard/5032095.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-004.html
-/sdcard/android/layout_tests/editing/pasteboard/5247341.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-4035648-fix.html
-/sdcard/android/layout_tests/editing/pasteboard/4700297.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-003.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-into-blockquote.html
-/sdcard/android/layout_tests/editing/pasteboard/drop-link.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-into-blockquote-3.html
-/sdcard/android/layout_tests/editing/pasteboard/4944770-1.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-015.html
-/sdcard/android/layout_tests/editing/pasteboard/5075944.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-match-style-001.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-4039777-fix.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-3.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-007.html
-/sdcard/android/layout_tests/editing/pasteboard/5483567.html
-/sdcard/android/layout_tests/editing/pasteboard/7955.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-blockquote.html
-/sdcard/android/layout_tests/editing/pasteboard/testcase-9507.html
-/sdcard/android/layout_tests/editing/pasteboard/input-field-1.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-001.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-at-tabspan-001.html
-/sdcard/android/layout_tests/editing/pasteboard/interchange-newline-2.html
-/sdcard/android/layout_tests/editing/pasteboard/block-wrappers-necessary.html
-/sdcard/android/layout_tests/editing/pasteboard/4861080.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-009.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-after-delete.html
-/sdcard/android/layout_tests/editing/pasteboard/5478250.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-012.html
-/sdcard/android/layout_tests/editing/pasteboard/prevent-block-nesting-01.html
-/sdcard/android/layout_tests/editing/pasteboard/8145-2.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-borders.html
-/sdcard/android/layout_tests/editing/pasteboard/5027857.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-004.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-start-list.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-008.html
-/sdcard/android/layout_tests/editing/pasteboard/4806874.html
-/sdcard/android/layout_tests/editing/pasteboard/emacs-ctrl-a-k-y.html
-/sdcard/android/layout_tests/editing/pasteboard/bad-placeholder.html
-/sdcard/android/layout_tests/editing/pasteboard/displaced-placeholder.html
-/sdcard/android/layout_tests/editing/pasteboard/5387578.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-1.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-010.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-006.html
-/sdcard/android/layout_tests/editing/pasteboard/5601583-1.html
-/sdcard/android/layout_tests/editing/pasteboard/4947130.html
-/sdcard/android/layout_tests/editing/pasteboard/pasting-tabs.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-after-delete-2.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-001.html
-/sdcard/android/layout_tests/editing/pasteboard/4076267-2.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-table-001.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-005.html
-/sdcard/android/layout_tests/editing/pasteboard/5089327.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-017.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-5.html
-/sdcard/android/layout_tests/editing/pasteboard/drop-text-without-selection.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-at-tabspan-003.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-003.html
-/sdcard/android/layout_tests/editing/pasteboard/drag-drop-modifies-page.html
-/sdcard/android/layout_tests/editing/pasteboard/emacs-ctrl-k-y-001.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-after-blockquote.html
-/sdcard/android/layout_tests/editing/pasteboard/5071074.html
-/sdcard/android/layout_tests/editing/pasteboard/interchange-newline-4.html
-/sdcard/android/layout_tests/editing/pasteboard/styled-element-markup.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-4038267-fix.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-002.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-into-blockquote-2.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-pre-002.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-014.html
-/sdcard/android/layout_tests/editing/pasteboard/drag-drop-dead-frame.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-2.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-006.html
-/sdcard/android/layout_tests/editing/pasteboard/5368833.html
-/sdcard/android/layout_tests/editing/pasteboard/select-element-1.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-3.html
-/sdcard/android/layout_tests/editing/pasteboard/4641033.html
-/sdcard/android/layout_tests/editing/pasteboard/drag-image-to-contenteditable-in-iframe.html
-/sdcard/android/layout_tests/editing/pasteboard/interchange-newline-1.html
-/sdcard/android/layout_tests/editing/pasteboard/copy-paste-bidi.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-008.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-011.html
-/sdcard/android/layout_tests/editing/pasteboard/8145-1.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-003.html
-/sdcard/android/layout_tests/editing/pasteboard/5075944-3.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-table-003.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-TIFF.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-007.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-019.html
-/sdcard/android/layout_tests/editing/pasteboard/undoable-fragment-removes.html
-/sdcard/android/layout_tests/editing/pasteboard/nested-blocks-with-text-field.html
-/sdcard/android/layout_tests/editing/pasteboard/4989774.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-unrendered-select.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-005.html
-/sdcard/android/layout_tests/editing/pasteboard/emacs-cntl-y-001.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-after-delete-1.html
-/sdcard/android/layout_tests/editing/pasteboard/unrendered-br.html
-/sdcard/android/layout_tests/editing/pasteboard/4631972.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-004.html
-/sdcard/android/layout_tests/editing/pasteboard/quirks-mode-br-1.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-into-blockquote-4.html
-/sdcard/android/layout_tests/editing/pasteboard/4944770-2.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-table-cells.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-016.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-match-style-002.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-4.html
-/sdcard/android/layout_tests/editing/pasteboard/drag-selected-image-to-contenteditable.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-008.html
-/sdcard/android/layout_tests/editing/pasteboard/3976872.html
-/sdcard/android/layout_tests/editing/pasteboard/pasting-object.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-list.html
-/sdcard/android/layout_tests/editing/pasteboard/copy-standalone-image.html
-/sdcard/android/layout_tests/editing/pasteboard/displaced-generic-placeholder.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-002.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-at-tabspan-002.html
-/sdcard/android/layout_tests/editing/pasteboard/interchange-newline-3.html
-/sdcard/android/layout_tests/editing/pasteboard/5071074-2.html
-/sdcard/android/layout_tests/editing/pasteboard/display-block-on-spans.html
-/sdcard/android/layout_tests/editing/pasteboard/4242293.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-001.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-pre-001.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-start-blockquote.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-1.html
-/sdcard/android/layout_tests/editing/pasteboard/8145-3.html
-/sdcard/android/layout_tests/editing/pasteboard/5006779.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-005.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-009.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-blockquote-2.html
-/sdcard/android/layout_tests/editing/pasteboard/merge-end-table.html
-/sdcard/android/layout_tests/editing/pasteboard/5065605.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-line-endings-007.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-010.html
-/sdcard/android/layout_tests/editing/pasteboard/5028447.html
-/sdcard/android/layout_tests/editing/pasteboard/nested-blocks-with-text-area.html
-/sdcard/android/layout_tests/editing/pasteboard/4076267-3.html
-/sdcard/android/layout_tests/editing/pasteboard/4076267.html
-/sdcard/android/layout_tests/editing/pasteboard/smart-paste-002.html
-/sdcard/android/layout_tests/editing/pasteboard/5075944-2.html
-/sdcard/android/layout_tests/editing/pasteboard/5134759.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-006.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-text-018.html
-/sdcard/android/layout_tests/editing/pasteboard/paste-RTFD.html
-/sdcard/android/layout_tests/editing/pasteboard/cut-text-001.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-9.html
-/sdcard/android/layout_tests/editing/selection/fake-drag.html
-/sdcard/android/layout_tests/editing/selection/wrapped-line-caret-2.html
-/sdcard/android/layout_tests/editing/selection/unrendered-002.html
-/sdcard/android/layout_tests/editing/selection/3690703-2.html
-/sdcard/android/layout_tests/editing/selection/extend-by-character-005.html
-/sdcard/android/layout_tests/editing/selection/caret-rtl-2.html
-/sdcard/android/layout_tests/editing/selection/paragraph-granularity.html
-/sdcard/android/layout_tests/editing/selection/clear-selection.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-6.html
-/sdcard/android/layout_tests/editing/selection/drag-in-iframe.html
-/sdcard/android/layout_tests/editing/selection/unrendered-space.html
-/sdcard/android/layout_tests/editing/selection/extend-by-character-002.html
-/sdcard/android/layout_tests/editing/selection/4932260-2.html
-/sdcard/android/layout_tests/editing/selection/select-element-paragraph-boundary.html
-/sdcard/android/layout_tests/editing/selection/extend-by-sentence-001.html
-/sdcard/android/layout_tests/editing/selection/3690719.html
-/sdcard/android/layout_tests/editing/selection/editable-non-editable-crash.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-3.html
-/sdcard/android/layout_tests/editing/selection/replaced-boundaries-3.html
-/sdcard/android/layout_tests/editing/selection/move-by-sentence-linebreak.html
-/sdcard/android/layout_tests/editing/selection/move-by-character-005.html
-/sdcard/android/layout_tests/editing/selection/end-of-document.html
-/sdcard/android/layout_tests/editing/selection/selectNode.html
-/sdcard/android/layout_tests/editing/selection/editable-links.html
-/sdcard/android/layout_tests/editing/selection/extend-by-word-002.html
-/sdcard/android/layout_tests/editing/selection/move-by-character-002.html
-/sdcard/android/layout_tests/editing/selection/14971.html
-/sdcard/android/layout_tests/editing/selection/5131716-2.html
-/sdcard/android/layout_tests/editing/selection/5081257-1.html
-/sdcard/android/layout_tests/editing/selection/move-3875641-fix.html
-/sdcard/android/layout_tests/editing/selection/5099303.html
-/sdcard/android/layout_tests/editing/selection/move-by-line-002.html
-/sdcard/android/layout_tests/editing/selection/select-missing-image.html
-/sdcard/android/layout_tests/editing/selection/selection-3748164-fix.html
-/sdcard/android/layout_tests/editing/selection/4983858.html
-/sdcard/android/layout_tests/editing/selection/move-by-sentence-001.html
-/sdcard/android/layout_tests/editing/selection/table-caret-1.html
-/sdcard/android/layout_tests/editing/selection/move-by-word-001.html
-/sdcard/android/layout_tests/editing/selection/select-all-004.html
-/sdcard/android/layout_tests/editing/selection/5076323-2.html
-/sdcard/android/layout_tests/editing/selection/move-3875618-fix.html
-/sdcard/android/layout_tests/editing/selection/inline-table.html
-/sdcard/android/layout_tests/editing/selection/4895428-3.html
-/sdcard/android/layout_tests/editing/selection/caret-before-select.html
-/sdcard/android/layout_tests/editing/selection/select-all-001.html
-/sdcard/android/layout_tests/editing/selection/unrendered-003.html
-/sdcard/android/layout_tests/editing/selection/extend-by-character-006.html
-/sdcard/android/layout_tests/editing/selection/7152-1.html
-/sdcard/android/layout_tests/editing/selection/iframe.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-7.html
-/sdcard/android/layout_tests/editing/selection/select-all-iframe.html
-/sdcard/android/layout_tests/editing/selection/extend-by-character-003.html
-/sdcard/android/layout_tests/editing/selection/4932260-3.html
-/sdcard/android/layout_tests/editing/selection/4960116.html
-/sdcard/android/layout_tests/editing/selection/drag-to-contenteditable-iframe.html
-/sdcard/android/layout_tests/editing/selection/selectNodeContents.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-4.html
-/sdcard/android/layout_tests/editing/selection/focus-body.html
-/sdcard/android/layout_tests/editing/selection/designmode-no-caret.html
-/sdcard/android/layout_tests/editing/selection/5234383-1.html
-/sdcard/android/layout_tests/editing/selection/5232159.html
-/sdcard/android/layout_tests/editing/selection/4960137.html
-/sdcard/android/layout_tests/editing/selection/previous-line-position.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-1.html
-/sdcard/android/layout_tests/editing/selection/replaced-boundaries-1.html
-/sdcard/android/layout_tests/editing/selection/move-by-character-003.html
-/sdcard/android/layout_tests/editing/selection/4776665.html
-/sdcard/android/layout_tests/editing/selection/move-by-character-6.html
-/sdcard/android/layout_tests/editing/selection/image-before-linebreak.html
-/sdcard/android/layout_tests/editing/selection/move-between-blocks-no-001.html
-/sdcard/android/layout_tests/editing/selection/5131716-3.html
-/sdcard/android/layout_tests/editing/selection/5081257-2.html
-/sdcard/android/layout_tests/editing/selection/5354455-1.html
-/sdcard/android/layout_tests/editing/selection/expanding-selections2.html
-/sdcard/android/layout_tests/editing/selection/display-table-text.html
-/sdcard/android/layout_tests/editing/selection/13804.html
-/sdcard/android/layout_tests/editing/selection/table-caret-2.html
-/sdcard/android/layout_tests/editing/selection/expanding-selections.html
-/sdcard/android/layout_tests/editing/selection/node-removal-1.html
-/sdcard/android/layout_tests/editing/selection/5240265.html
-/sdcard/android/layout_tests/editing/selection/select-all-005.html
-/sdcard/android/layout_tests/editing/selection/5076323-3.html
-/sdcard/android/layout_tests/editing/selection/line-wrap-1.html
-/sdcard/android/layout_tests/editing/selection/replace-selection-1.html
-/sdcard/android/layout_tests/editing/selection/caret-rtl.html
-/sdcard/android/layout_tests/editing/selection/5109817.html
-/sdcard/android/layout_tests/editing/selection/5136696.html
-/sdcard/android/layout_tests/editing/selection/4397952.html
-/sdcard/android/layout_tests/editing/selection/caret-and-focus-ring.html
-/sdcard/android/layout_tests/editing/selection/4895428-4.html
-/sdcard/android/layout_tests/editing/selection/4947387.html
-/sdcard/android/layout_tests/editing/selection/select-from-textfield-outwards.html
-/sdcard/android/layout_tests/editing/selection/leave-requested-block.html
-/sdcard/android/layout_tests/editing/selection/select-all-002.html
-/sdcard/android/layout_tests/editing/selection/unrendered-004.html
-/sdcard/android/layout_tests/editing/selection/7152-2.html
-/sdcard/android/layout_tests/editing/selection/5195166-1.html
-/sdcard/android/layout_tests/editing/selection/editable-html-element.html
-/sdcard/android/layout_tests/editing/selection/4866671.html
-/sdcard/android/layout_tests/editing/selection/4895428-1.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-8.html
-/sdcard/android/layout_tests/editing/selection/wrapped-line-caret-1.html
-/sdcard/android/layout_tests/editing/selection/selection-actions.html
-/sdcard/android/layout_tests/editing/selection/4402375.html
-/sdcard/android/layout_tests/editing/selection/unrendered-001.html
-/sdcard/android/layout_tests/editing/selection/extend-by-character-004.html
-/sdcard/android/layout_tests/editing/selection/contenteditable-click-inside.html
-/sdcard/android/layout_tests/editing/selection/addRange.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-5.html
-/sdcard/android/layout_tests/editing/selection/5007143.html
-/sdcard/android/layout_tests/editing/selection/fake-doubleclick.html
-/sdcard/android/layout_tests/editing/selection/extend-by-character-001.html
-/sdcard/android/layout_tests/editing/selection/4932260-1.html
-/sdcard/android/layout_tests/editing/selection/5234383-2.html
-/sdcard/android/layout_tests/editing/selection/5057506.html
-/sdcard/android/layout_tests/editing/selection/focus_editable_html.html
-/sdcard/android/layout_tests/editing/selection/4818145.html
-/sdcard/android/layout_tests/editing/selection/move-backwords-by-word-001.html
-/sdcard/android/layout_tests/editing/selection/mixed-editability-2.html
-/sdcard/android/layout_tests/editing/selection/replaced-boundaries-2.html
-/sdcard/android/layout_tests/editing/selection/move-by-character-004.html
-/sdcard/android/layout_tests/editing/selection/4889598.html
-/sdcard/android/layout_tests/editing/selection/5131716-4.html
-/sdcard/android/layout_tests/editing/selection/3690703.html
-/sdcard/android/layout_tests/editing/selection/5333725.html
-/sdcard/android/layout_tests/editing/selection/5354455-2.html
-/sdcard/android/layout_tests/editing/selection/selection-background.html
-/sdcard/android/layout_tests/editing/selection/extend-by-word-001.html
-/sdcard/android/layout_tests/editing/selection/move-by-character-001.html
-/sdcard/android/layout_tests/editing/selection/doubleclick-crash.html
-/sdcard/android/layout_tests/editing/selection/table-caret-3.html
-/sdcard/android/layout_tests/editing/selection/5131716-1.html
-/sdcard/android/layout_tests/editing/selection/node-removal-2.html
-/sdcard/android/layout_tests/editing/selection/drag-select-1.html
-/sdcard/android/layout_tests/editing/selection/select-all-006.html
-/sdcard/android/layout_tests/editing/selection/after-line-wrap.html
-/sdcard/android/layout_tests/editing/selection/line-wrap-2.html
-/sdcard/android/layout_tests/editing/selection/move-by-line-001.html
-/sdcard/android/layout_tests/editing/selection/move-between-blocks-yes-001.html
-/sdcard/android/layout_tests/editing/selection/6476.html
-/sdcard/android/layout_tests/editing/selection/contains-boundaries.html
-/sdcard/android/layout_tests/editing/selection/click-start-of-line.html
-/sdcard/android/layout_tests/editing/selection/triple-click-in-pre.html
-/sdcard/android/layout_tests/editing/selection/move-past-trailing-space.html
-/sdcard/android/layout_tests/editing/selection/inline-closest-leaf-child.html
-/sdcard/android/layout_tests/editing/selection/5007143-2.html
-/sdcard/android/layout_tests/editing/selection/select-all-003.html
-/sdcard/android/layout_tests/editing/selection/5076323-1.html
-/sdcard/android/layout_tests/editing/selection/5057506-2.html
-/sdcard/android/layout_tests/editing/selection/4975120.html
-/sdcard/android/layout_tests/editing/selection/unrendered-005.html
-/sdcard/android/layout_tests/editing/selection/5195166-2.html
-/sdcard/android/layout_tests/editing/selection/select-box.html
-/sdcard/android/layout_tests/editing/selection/4895428-2.html
-/sdcard/android/layout_tests/editing/selection/word-granularity.html
-/sdcard/android/layout_tests/editing/undo/undo-misspellings.html
-/sdcard/android/layout_tests/editing/undo/undo-combined-delete.html
-/sdcard/android/layout_tests/editing/undo/undo-delete-boundary.html
-/sdcard/android/layout_tests/editing/undo/undo-forward-delete-boundary.html
-/sdcard/android/layout_tests/editing/undo/4063751.html
-/sdcard/android/layout_tests/editing/undo/redo-typing-001.html
-/sdcard/android/layout_tests/editing/undo/5378473.html
-/sdcard/android/layout_tests/editing/undo/undo-combined-delete-boundary.html
-/sdcard/android/layout_tests/editing/undo/undo-delete.html
-/sdcard/android/layout_tests/editing/undo/undo-forward-delete.html
-/sdcard/android/layout_tests/editing/undo/undo-typing-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-3608462-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-image-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-3928305-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-012.html
-/sdcard/android/layout_tests/editing/deleting/5115601.html
-/sdcard/android/layout_tests/editing/deleting/deletionUI-single-instance.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-contents-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-024.html
-/sdcard/android/layout_tests/editing/deleting/delete-after-span-ws-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-011.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-008.html
-/sdcard/android/layout_tests/editing/deleting/delete-listitem-001.html
-/sdcard/android/layout_tests/editing/deleting/5300379.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-007.html
-/sdcard/android/layout_tests/editing/deleting/5433862-2.html
-/sdcard/android/layout_tests/editing/deleting/5026848-1.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-012.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-008.html
-/sdcard/android/layout_tests/editing/deleting/5206311-2.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-start-or-end.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-021.html
-/sdcard/android/layout_tests/editing/deleting/delete-ws-fixup-004.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-005.html
-/sdcard/android/layout_tests/editing/deleting/delete-select-all-003.html
-/sdcard/android/layout_tests/editing/deleting/smart-delete-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-017.html
-/sdcard/android/layout_tests/editing/deleting/table-cells.html
-/sdcard/android/layout_tests/editing/deleting/5156801-2.html
-/sdcard/android/layout_tests/editing/deleting/delete-leading-ws-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-004.html
-/sdcard/android/layout_tests/editing/deleting/delete-3857753-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-3959464-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-016.html
-/sdcard/android/layout_tests/editing/deleting/delete-trailing-ws-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-005.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-008.html
-/sdcard/android/layout_tests/editing/deleting/delete-tab-004.html
-/sdcard/android/layout_tests/editing/deleting/merge-whitespace-pre.html
-/sdcard/android/layout_tests/editing/deleting/delete-ws-fixup-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-end-ws-002.html
-/sdcard/android/layout_tests/editing/deleting/merge-unrendered-space.html
-/sdcard/android/layout_tests/editing/deleting/delete-by-word-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-image-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-selection-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-014.html
-/sdcard/android/layout_tests/editing/deleting/merge-different-styles.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-contents-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-after-span-ws-003.html
-/sdcard/android/layout_tests/editing/deleting/merge-into-empty-block-1.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-013.html
-/sdcard/android/layout_tests/editing/deleting/delete-3865854-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-009.html
-/sdcard/android/layout_tests/editing/deleting/5026848-3.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-005.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-tab-001.html
-/sdcard/android/layout_tests/editing/deleting/whitespace-pre-1.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-table.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-011.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-023.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-010.html
-/sdcard/android/layout_tests/editing/deleting/5032066.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-007.html
-/sdcard/android/layout_tests/editing/deleting/smart-delete-004.html
-/sdcard/android/layout_tests/editing/deleting/5144139-2.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-019.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-006.html
-/sdcard/android/layout_tests/editing/deleting/5126166.html
-/sdcard/android/layout_tests/editing/deleting/delete-to-end-of-paragraph.html
-/sdcard/android/layout_tests/editing/deleting/5408255.html
-/sdcard/android/layout_tests/editing/deleting/5099303.html
-/sdcard/android/layout_tests/editing/deleting/4845371.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-002.html
-/sdcard/android/layout_tests/editing/deleting/4922367.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-011.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-007.html
-/sdcard/android/layout_tests/editing/deleting/move-nodes-001.html
-/sdcard/android/layout_tests/editing/deleting/merge-no-br.html
-/sdcard/android/layout_tests/editing/deleting/delete-3800834-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-4038408-fix.html
-/sdcard/android/layout_tests/editing/deleting/5206311-1.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-020.html
-/sdcard/android/layout_tests/editing/deleting/delete-ws-fixup-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-004.html
-/sdcard/android/layout_tests/editing/deleting/delete-select-all-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-contiguous-ws-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-to-select-table.html
-/sdcard/android/layout_tests/editing/deleting/smart-delete-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-016.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-015.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-011.html
-/sdcard/android/layout_tests/editing/deleting/5390681.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-004.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-007.html
-/sdcard/android/layout_tests/editing/deleting/forward-delete.html
-/sdcard/android/layout_tests/editing/deleting/delete-tab-003.html
-/sdcard/android/layout_tests/editing/deleting/collapse-whitespace-3587601-fix.html
-/sdcard/android/layout_tests/editing/deleting/pruning-after-merge-2.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-end-ws-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-by-word-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-image-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-013.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-contents-002.html
-/sdcard/android/layout_tests/editing/deleting/paragraph-in-preserveNewline.html
-/sdcard/android/layout_tests/editing/deleting/delete-after-span-ws-002.html
-/sdcard/android/layout_tests/editing/deleting/5272440.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-012.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-009.html
-/sdcard/android/layout_tests/editing/deleting/delete-listitem-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-character-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-008.html
-/sdcard/android/layout_tests/editing/deleting/5483370.html
-/sdcard/android/layout_tests/editing/deleting/5026848-2.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-004.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-013.html
-/sdcard/android/layout_tests/editing/deleting/5091898.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-009.html
-/sdcard/android/layout_tests/editing/deleting/transpose-empty.html
-/sdcard/android/layout_tests/editing/deleting/merge-endOfParagraph.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-010.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-022.html
-/sdcard/android/layout_tests/editing/deleting/delete-3775172-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-mixed-editable-content-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-006.html
-/sdcard/android/layout_tests/editing/deleting/smart-delete-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-018.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-005.html
-/sdcard/android/layout_tests/editing/deleting/delete-first-list-item.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-017.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-trailing-ws-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-010.html
-/sdcard/android/layout_tests/editing/deleting/delete-and-undo.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-006.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-009.html
-/sdcard/android/layout_tests/editing/deleting/delete-hr.html
-/sdcard/android/layout_tests/editing/deleting/delete-4083333-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-3608445-fix.html
-/sdcard/android/layout_tests/editing/deleting/delete-ws-fixup-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-image-004.html
-/sdcard/android/layout_tests/editing/deleting/delete-select-all-001.html
-/sdcard/android/layout_tests/editing/deleting/delete-block-merge-contents-015.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-002.html
-/sdcard/android/layout_tests/editing/deleting/delete-line-014.html
-/sdcard/android/layout_tests/editing/deleting/merge-into-empty-block-2.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-010.html
-/sdcard/android/layout_tests/editing/deleting/5390681-2.html
-/sdcard/android/layout_tests/editing/deleting/5369009.html
-/sdcard/android/layout_tests/editing/deleting/delete-br-003.html
-/sdcard/android/layout_tests/editing/deleting/delete-at-paragraph-boundaries-006.html
-/sdcard/android/layout_tests/editing/deleting/delete-tab-002.html
-/sdcard/android/layout_tests/editing/deleting/list-item-1.html
-/sdcard/android/layout_tests/editing/deleting/5168598.html
-/sdcard/android/layout_tests/editing/deleting/delete-3608430-fix.html
-/sdcard/android/layout_tests/editing/deleting/type-delete-after-quote.html
-/sdcard/android/layout_tests/editing/spelling/spelling.html
-/sdcard/android/layout_tests/editing/spelling/spellcheck-attribute.html
-/sdcard/android/layout_tests/editing/spelling/inline_spelling_markers.html
-/sdcard/android/layout_tests/editing/spelling/spelling-linebreak.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-05.html
-/sdcard/android/layout_tests/fast/media/mq-grid-02.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-02.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-09.html
-/sdcard/android/layout_tests/fast/media/mq-width-absolute-03.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-02.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-04.html
-/sdcard/android/layout_tests/fast/media/mq-min-pixel-ratio.html
-/sdcard/android/layout_tests/fast/media/implicit-media-all.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-01.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-03.html
-/sdcard/android/layout_tests/fast/media/viewport-media-query.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-05.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-01.html
-/sdcard/android/layout_tests/fast/media/mq-transition.html
-/sdcard/android/layout_tests/fast/media/mq-orientation.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-05.html
-/sdcard/android/layout_tests/fast/media/mq-transform-04.html
-/sdcard/android/layout_tests/fast/media/mq-js-media-except-02.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-02.html
-/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-03.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-06.html
-/sdcard/android/layout_tests/fast/media/mq-valueless.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-03.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-01.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-03.html
-/sdcard/android/layout_tests/fast/media/mq-width-absolute-04.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-05.html
-/sdcard/android/layout_tests/fast/media/mq-animation.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-02.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-04.html
-/sdcard/android/layout_tests/fast/media/media-type-syntax-01.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-06.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-02.html
-/sdcard/android/layout_tests/fast/media/mq-transform-01.html
-/sdcard/android/layout_tests/fast/media/monochrome.html
-/sdcard/android/layout_tests/fast/media/mq-pixel-ratio.html
-/sdcard/android/layout_tests/fast/media/mq-js-media-except-03.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-03.html
-/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-04.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-07.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-04.html
-/sdcard/android/layout_tests/fast/media/mq-width-absolute-01.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-02.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-04.html
-/sdcard/android/layout_tests/fast/media/mq-max-pixel-ratio.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-01.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-03.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-05.html
-/sdcard/android/layout_tests/fast/media/media-type-syntax-02.html
-/sdcard/android/layout_tests/fast/media/mq-transform-02.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-03.html
-/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-01.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-04.html
-/sdcard/android/layout_tests/fast/media/mq-grid-01.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-01.html
-/sdcard/android/layout_tests/fast/media/mq-min-constraint.html
-/sdcard/android/layout_tests/fast/media/mq-relative-constraints-08.html
-/sdcard/android/layout_tests/fast/media/mq-compound-query-05.html
-/sdcard/android/layout_tests/fast/media/mq-width-absolute-02.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-media-feature-01.html
-/sdcard/android/layout_tests/fast/media/mq-simple-query-03.html
-/sdcard/android/layout_tests/fast/media/mq-js-media-forward-syntax.html
-/sdcard/android/layout_tests/fast/media/mq-simple-neg-query-02.html
-/sdcard/android/layout_tests/fast/media/media-descriptor-syntax-04.html
-/sdcard/android/layout_tests/fast/media/mq-aspect-ratio.html
-/sdcard/android/layout_tests/fast/media/mq-invalid-syntax-04.html
-/sdcard/android/layout_tests/fast/media/mq-transform-03.html
-/sdcard/android/layout_tests/fast/media/mq-js-media-except-01.html
-/sdcard/android/layout_tests/fast/media/mq-js-stylesheet-media-02.html
-/sdcard/android/layout_tests/fast/replaced/embed-display-none.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-radio.html
-/sdcard/android/layout_tests/fast/replaced/selection-rect.html
-/sdcard/android/layout_tests/fast/replaced/applet-display-none.html
-/sdcard/android/layout_tests/fast/replaced/inline-box-wrapper-handover.html
-/sdcard/android/layout_tests/fast/replaced/maxheight-pxs.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-searchfield.html
-/sdcard/android/layout_tests/fast/replaced/selection-rect-transform.html
-/sdcard/android/layout_tests/fast/replaced/minwidth-pxs.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-textarea.html
-/sdcard/android/layout_tests/fast/replaced/maxwidth-pxs.html
-/sdcard/android/layout_tests/fast/replaced/absolute-position-percentage-height.html
-/sdcard/android/layout_tests/fast/replaced/004.html
-/sdcard/android/layout_tests/fast/replaced/applet-disabled-positioned.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-checkbox.html
-/sdcard/android/layout_tests/fast/replaced/008.html
-/sdcard/android/layout_tests/fast/replaced/percent-height-in-anonymous-block-widget.html
-/sdcard/android/layout_tests/fast/replaced/maxheight-percent.html
-/sdcard/android/layout_tests/fast/replaced/minwidth-percent.html
-/sdcard/android/layout_tests/fast/replaced/maxwidth-percent.html
-/sdcard/android/layout_tests/fast/replaced/applet-rendering-java-disabled.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-button.html
-/sdcard/android/layout_tests/fast/replaced/image-resize-width.html
-/sdcard/android/layout_tests/fast/replaced/absolute-image-sizing.html
-/sdcard/android/layout_tests/fast/replaced/001.html
-/sdcard/android/layout_tests/fast/replaced/005.html
-/sdcard/android/layout_tests/fast/replaced/object-display-none.html
-/sdcard/android/layout_tests/fast/replaced/absolute-position-percentage-width.html
-/sdcard/android/layout_tests/fast/replaced/object-align-hspace-vspace.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-menulist.html
-/sdcard/android/layout_tests/fast/replaced/percent-height-in-anonymous-block-in-table.html
-/sdcard/android/layout_tests/fast/replaced/image-sizing.html
-/sdcard/android/layout_tests/fast/replaced/minheight-pxs.html
-/sdcard/android/layout_tests/fast/replaced/pdf-as-image.html
-/sdcard/android/layout_tests/fast/replaced/replaced-breaking-mixture.html
-/sdcard/android/layout_tests/fast/replaced/max-width-percent.html
-/sdcard/android/layout_tests/fast/replaced/002.html
-/sdcard/android/layout_tests/fast/replaced/006.html
-/sdcard/android/layout_tests/fast/replaced/minheight-percent.html
-/sdcard/android/layout_tests/fast/replaced/absolute-position-with-auto-width-and-left-and-right.html
-/sdcard/android/layout_tests/fast/replaced/selection-rect-in-table-cell.html
-/sdcard/android/layout_tests/fast/replaced/border-radius-clip.html
-/sdcard/android/layout_tests/fast/replaced/percent-height-in-anonymous-block.html
-/sdcard/android/layout_tests/fast/replaced/three-selects-break.html
-/sdcard/android/layout_tests/fast/replaced/image-tag.html
-/sdcard/android/layout_tests/fast/replaced/image-onload.html
-/sdcard/android/layout_tests/fast/replaced/replaced-breaking.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-image.html
-/sdcard/android/layout_tests/fast/replaced/image-solid-color-with-alpha.html
-/sdcard/android/layout_tests/fast/replaced/003.html
-/sdcard/android/layout_tests/fast/replaced/replaced-child-of-absolute-with-auto-height.html
-/sdcard/android/layout_tests/fast/replaced/007.html
-/sdcard/android/layout_tests/fast/replaced/absolute-position-with-auto-height-and-top-and-bottom.html
-/sdcard/android/layout_tests/fast/replaced/width100percent-textfield.html
-/sdcard/android/layout_tests/fast/dynamic/positioned-movement-with-positioned-children.html
-/sdcard/android/layout_tests/fast/dynamic/subtree-table-cell-height.html
-/sdcard/android/layout_tests/fast/dynamic/move-node-with-selection.html
-/sdcard/android/layout_tests/fast/dynamic/create-renderer-for-whitespace-only-text.html
-/sdcard/android/layout_tests/fast/dynamic/outerHTML-doc.html
-/sdcard/android/layout_tests/fast/dynamic/window-scrollbars-test.html
-/sdcard/android/layout_tests/fast/dynamic/floating-to-positioned-2.html
-/sdcard/android/layout_tests/fast/dynamic/anchor-lock.html
-/sdcard/android/layout_tests/fast/dynamic/012.html
-/sdcard/android/layout_tests/fast/dynamic/004.html
-/sdcard/android/layout_tests/fast/dynamic/008.html
-/sdcard/android/layout_tests/fast/dynamic/float-no-longer-overhanging.html
-/sdcard/android/layout_tests/fast/dynamic/float-withdrawal-2.html
-/sdcard/android/layout_tests/fast/dynamic/float-in-trailing-whitespace-after-last-line-break.html
-/sdcard/android/layout_tests/fast/dynamic/selection-highlight-adjust.html
-/sdcard/android/layout_tests/fast/dynamic/subtree-no-common-root-static-y.html
-/sdcard/android/layout_tests/fast/dynamic/genContentDestroyChildren.html
-/sdcard/android/layout_tests/fast/dynamic/001.html
-/sdcard/android/layout_tests/fast/dynamic/link-href-change.html
-/sdcard/android/layout_tests/fast/dynamic/013.html
-/sdcard/android/layout_tests/fast/dynamic/005.html
-/sdcard/android/layout_tests/fast/dynamic/009.html
-/sdcard/android/layout_tests/fast/dynamic/float-withdrawal.html
-/sdcard/android/layout_tests/fast/dynamic/anonymous-block-layer-lost.html
-/sdcard/android/layout_tests/fast/dynamic/layer-hit-test-crash.html
-/sdcard/android/layout_tests/fast/dynamic/view-overflow.html
-/sdcard/android/layout_tests/fast/dynamic/window-resize-scrollbars-test.html
-/sdcard/android/layout_tests/fast/dynamic/010.html
-/sdcard/android/layout_tests/fast/dynamic/002.html
-/sdcard/android/layout_tests/fast/dynamic/014.html
-/sdcard/android/layout_tests/fast/dynamic/006.html
-/sdcard/android/layout_tests/fast/dynamic/flash-replacement-test.html
-/sdcard/android/layout_tests/fast/dynamic/insertAdjacentElement.html
-/sdcard/android/layout_tests/fast/dynamic/insert-before-table-part-in-continuation.html
-/sdcard/android/layout_tests/fast/dynamic/staticY.html
-/sdcard/android/layout_tests/fast/dynamic/anonymous-block-orphaned-lines.html
-/sdcard/android/layout_tests/fast/dynamic/noninlinebadness.html
-/sdcard/android/layout_tests/fast/dynamic/subtree-parent-static-y.html
-/sdcard/android/layout_tests/fast/dynamic/outerHTML-img.html
-/sdcard/android/layout_tests/fast/dynamic/staticY-marking-parents-regression.html
-/sdcard/android/layout_tests/fast/dynamic/floating-to-positioned.html
-/sdcard/android/layout_tests/fast/dynamic/subtree-boundary-percent-height.html
-/sdcard/android/layout_tests/fast/dynamic/011.html
-/sdcard/android/layout_tests/fast/dynamic/containing-block-change.html
-/sdcard/android/layout_tests/fast/dynamic/015.html
-/sdcard/android/layout_tests/fast/dynamic/007.html
-/sdcard/android/layout_tests/fast/text/firstline/001.html
-/sdcard/android/layout_tests/fast/text/firstline/002.html
-/sdcard/android/layout_tests/fast/text/firstline/003.html
-/sdcard/android/layout_tests/fast/text/international/hindi-spacing.html
-/sdcard/android/layout_tests/fast/text/international/bidi-L2-run-reordering.html
-/sdcard/android/layout_tests/fast/text/international/bidi-override.html
-/sdcard/android/layout_tests/fast/text/international/hindi-whitespace.html
-/sdcard/android/layout_tests/fast/text/international/bidi-european-terminators.html
-/sdcard/android/layout_tests/fast/text/international/bidi-LDB-2-formatting-characters.html
-/sdcard/android/layout_tests/fast/text/international/bidi-AN-after-L.html
-/sdcard/android/layout_tests/fast/text/international/bidi-LDB-2-CSS.html
-/sdcard/android/layout_tests/fast/text/international/bidi-control-chars-treated-as-ZWS.html
-/sdcard/android/layout_tests/fast/text/international/bidi-neutral-directionality-paragraph-start.html
-/sdcard/android/layout_tests/fast/text/international/bidi-linebreak-001.html
-/sdcard/android/layout_tests/fast/text/international/bidi-linebreak-003.html
-/sdcard/android/layout_tests/fast/text/international/002.html
-/sdcard/android/layout_tests/fast/text/international/bidi-explicit-embedding.html
-/sdcard/android/layout_tests/fast/text/international/rtl-white-space-pre-wrap.html
-/sdcard/android/layout_tests/fast/text/international/bidi-CS-after-AN.html
-/sdcard/android/layout_tests/fast/text/international/complex-character-based-fallback.html
-/sdcard/android/layout_tests/fast/text/international/wrap-CJK-001.html
-/sdcard/android/layout_tests/fast/text/international/bidi-listbox-atsui.html
-/sdcard/android/layout_tests/fast/text/international/thai-line-breaks.html
-/sdcard/android/layout_tests/fast/text/international/bidi-neutral-run.html
-/sdcard/android/layout_tests/fast/text/international/bidi-innertext.html
-/sdcard/android/layout_tests/fast/text/international/bidi-listbox.html
-/sdcard/android/layout_tests/fast/text/international/khmer-selection.html
-/sdcard/android/layout_tests/fast/text/international/thai-baht-space.html
-/sdcard/android/layout_tests/fast/text/international/rtl-caret.html
-/sdcard/android/layout_tests/fast/text/international/bidi-AN-after-empty-run.html
-/sdcard/android/layout_tests/fast/text/international/001.html
-/sdcard/android/layout_tests/fast/text/international/bidi-linebreak-002.html
-/sdcard/android/layout_tests/fast/text/international/danda-space.html
-/sdcard/android/layout_tests/fast/text/international/003.html
-/sdcard/android/layout_tests/fast/text/international/bidi-ignored-for-first-child-inline.html
-/sdcard/android/layout_tests/fast/text/international/bidi-layout-across-linebreak.html
-/sdcard/android/layout_tests/fast/text/international/bidi-menulist.html
-/sdcard/android/layout_tests/fast/text/international/bidi-LDB-2-HTML.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-overflow-selection.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-newline-box-test.html
-/sdcard/android/layout_tests/fast/text/whitespace/span-in-word-space-causes-overflow.html
-/sdcard/android/layout_tests/fast/text/whitespace/nowrap-clear-float.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-line-test.html
-/sdcard/android/layout_tests/fast/text/whitespace/010.html
-/sdcard/android/layout_tests/fast/text/whitespace/020.html
-/sdcard/android/layout_tests/fast/text/whitespace/002.html
-/sdcard/android/layout_tests/fast/text/whitespace/030.html
-/sdcard/android/layout_tests/fast/text/whitespace/012.html
-/sdcard/android/layout_tests/fast/text/whitespace/022.html
-/sdcard/android/layout_tests/fast/text/whitespace/004.html
-/sdcard/android/layout_tests/fast/text/whitespace/014.html
-/sdcard/android/layout_tests/fast/text/whitespace/024.html
-/sdcard/android/layout_tests/fast/text/whitespace/006.html
-/sdcard/android/layout_tests/fast/text/whitespace/016.html
-/sdcard/android/layout_tests/fast/text/whitespace/008.html
-/sdcard/android/layout_tests/fast/text/whitespace/026.html
-/sdcard/android/layout_tests/fast/text/whitespace/018.html
-/sdcard/android/layout_tests/fast/text/whitespace/028.html
-/sdcard/android/layout_tests/fast/text/whitespace/normal-after-nowrap-breaking.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-break-word.html
-/sdcard/android/layout_tests/fast/text/whitespace/nbsp-mode-and-linewraps.html
-/sdcard/android/layout_tests/fast/text/whitespace/001.html
-/sdcard/android/layout_tests/fast/text/whitespace/011.html
-/sdcard/android/layout_tests/fast/text/whitespace/tab-character-basics.html
-/sdcard/android/layout_tests/fast/text/whitespace/003.html
-/sdcard/android/layout_tests/fast/text/whitespace/021.html
-/sdcard/android/layout_tests/fast/text/whitespace/013.html
-/sdcard/android/layout_tests/fast/text/whitespace/023.html
-/sdcard/android/layout_tests/fast/text/whitespace/005.html
-/sdcard/android/layout_tests/fast/text/whitespace/015.html
-/sdcard/android/layout_tests/fast/text/whitespace/025.html
-/sdcard/android/layout_tests/fast/text/whitespace/007.html
-/sdcard/android/layout_tests/fast/text/whitespace/017.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-spaces-after-newline.html
-/sdcard/android/layout_tests/fast/text/whitespace/027.html
-/sdcard/android/layout_tests/fast/text/whitespace/009.html
-/sdcard/android/layout_tests/fast/text/whitespace/019.html
-/sdcard/android/layout_tests/fast/text/whitespace/pre-wrap-last-char.html
-/sdcard/android/layout_tests/fast/text/whitespace/029.html
-/sdcard/android/layout_tests/fast/text/basic/001.html
-/sdcard/android/layout_tests/fast/text/basic/002.html
-/sdcard/android/layout_tests/fast/text/basic/011.html
-/sdcard/android/layout_tests/fast/text/basic/generic-family-changes.html
-/sdcard/android/layout_tests/fast/text/basic/003.html
-/sdcard/android/layout_tests/fast/text/basic/012.html
-/sdcard/android/layout_tests/fast/text/basic/004.html
-/sdcard/android/layout_tests/fast/text/basic/013.html
-/sdcard/android/layout_tests/fast/text/basic/005.html
-/sdcard/android/layout_tests/fast/text/basic/014.html
-/sdcard/android/layout_tests/fast/text/basic/006.html
-/sdcard/android/layout_tests/fast/text/basic/015.html
-/sdcard/android/layout_tests/fast/text/basic/007.html
-/sdcard/android/layout_tests/fast/text/basic/008.html
-/sdcard/android/layout_tests/fast/text/basic/009.html
-/sdcard/android/layout_tests/fast/text/basic/generic-family-reset.html
-/sdcard/android/layout_tests/fast/text/in-rendered-text-rtl.html
-/sdcard/android/layout_tests/fast/text/selection-painted-separately.html
-/sdcard/android/layout_tests/fast/text/bidi-embedding-pop-and-push-same.html
-/sdcard/android/layout_tests/fast/text/wbr-in-pre-crash.html
-/sdcard/android/layout_tests/fast/text/atsui-spacing-features.html
-/sdcard/android/layout_tests/fast/text/textIteratorNilRenderer.html
-/sdcard/android/layout_tests/fast/text/drawBidiText.html
-/sdcard/android/layout_tests/fast/text/selection-hard-linebreak.html
-/sdcard/android/layout_tests/fast/text/word-break.html
-/sdcard/android/layout_tests/fast/text/break-word.html
-/sdcard/android/layout_tests/fast/text/font-initial.html
-/sdcard/android/layout_tests/fast/text/complex-text-opacity.html
-/sdcard/android/layout_tests/fast/text/stroking.html
-/sdcard/android/layout_tests/fast/text/midword-break-hang.html
-/sdcard/android/layout_tests/fast/text/atsui-partial-selection.html
-/sdcard/android/layout_tests/fast/text/embed-at-end-of-pre-wrap-line.html
-/sdcard/android/layout_tests/fast/text/atsui-multiple-renderers.html
-/sdcard/android/layout_tests/fast/text/shadow-translucent-fill.html
-/sdcard/android/layout_tests/fast/text/apply-start-width-after-skipped-text.html
-/sdcard/android/layout_tests/fast/text/capitalize-preserve-nbsp.html
-/sdcard/android/layout_tests/fast/text/updateNewFont.html
-/sdcard/android/layout_tests/fast/text/atsui-rtl-override-selection.html
-/sdcard/android/layout_tests/fast/text/align-center-rtl-spill.html
-/sdcard/android/layout_tests/fast/text/wbr.html
-/sdcard/android/layout_tests/fast/text/cg-vs-atsui.html
-/sdcard/android/layout_tests/fast/text/monospace-width-cache.html
-/sdcard/android/layout_tests/fast/text/soft-hyphen-2.html
-/sdcard/android/layout_tests/fast/text/atsui-pointtooffset-calls-cg.html
-/sdcard/android/layout_tests/fast/text/justified-selection.html
-/sdcard/android/layout_tests/fast/text/atsui-kerning-and-ligatures.html
-/sdcard/android/layout_tests/fast/text/wbr-pre.html
-/sdcard/android/layout_tests/fast/text/capitalize-boundaries.html
-/sdcard/android/layout_tests/fast/text/trailing-white-space.html
-/sdcard/android/layout_tests/fast/text/capitalize-empty-generated-string.html
-/sdcard/android/layout_tests/fast/text/stripNullFromText.html
-/sdcard/android/layout_tests/fast/text/letter-spacing-negative-opacity.html
-/sdcard/android/layout_tests/fast/text/atsui-small-caps-punctuation-size.html
-/sdcard/android/layout_tests/fast/text/word-break-soft-hyphen.html
-/sdcard/android/layout_tests/fast/text/fixed-pitch-control-characters.html
-/sdcard/android/layout_tests/fast/text/cg-fallback-bolding.html
-/sdcard/android/layout_tests/fast/text/line-breaks-after-white-space.html
-/sdcard/android/layout_tests/fast/text/text-letter-spacing.html
-/sdcard/android/layout_tests/fast/text/soft-hyphen-3.html
-/sdcard/android/layout_tests/fast/text/should-use-atsui.html
-/sdcard/android/layout_tests/fast/text/wide-zero-width-space.html
-/sdcard/android/layout_tests/fast/text/justified-selection-at-edge.html
-/sdcard/android/layout_tests/fast/text/trailing-white-space-2.html
-/sdcard/android/layout_tests/fast/text/word-break-run-rounding.html
-/sdcard/android/layout_tests/fast/text/softHyphen.html
-/sdcard/android/layout_tests/fast/text/delete-hard-break-character.html
-/sdcard/android/layout_tests/fast/text/line-breaks.html
-/sdcard/android/layout_tests/fast/text/wbr-styled.html
-/sdcard/android/layout_tests/fast/text/large-text-composed-char.html
-/sdcard/android/layout_tests/fast/text/shadow-no-blur.html
-/sdcard/android/layout_tests/fast/text/reset-emptyRun.html
-/sdcard/android/layout_tests/fast/text/word-space.html
-/sdcard/android/layout_tests/fast/text/midword-break-after-breakable-char.html
-/sdcard/android/layout_tests/fast/text/stroking-decorations.html
-/sdcard/android/layout_tests/fast/encoding/utf-16-little-endian.html
-/sdcard/android/layout_tests/fast/encoding/denormalised-voiced-japanese-chars.html
-/sdcard/android/layout_tests/fast/encoding/utf-16-no-bom.xml
-/sdcard/android/layout_tests/fast/encoding/utf-16-big-endian.html
-/sdcard/android/layout_tests/fast/encoding/xmacroman-encoding-test.html
-/sdcard/android/layout_tests/fast/encoding/invalid-UTF-8.html
-/sdcard/android/layout_tests/fast/multicol/float-avoidance.html
-/sdcard/android/layout_tests/fast/multicol/negativeColumnWidth.html
-/sdcard/android/layout_tests/fast/multicol/column-rules.html
-/sdcard/android/layout_tests/fast/multicol/column-rules-stacking.html
-/sdcard/android/layout_tests/fast/multicol/zeroColumnCount.html
-/sdcard/android/layout_tests/fast/multicol/columns-shorthand-parsing.html
-/sdcard/android/layout_tests/fast/multicol/float-multicol.html
-/sdcard/android/layout_tests/fast/doctypes/001.html
-/sdcard/android/layout_tests/fast/doctypes/002.html
-/sdcard/android/layout_tests/fast/doctypes/003.html
-/sdcard/android/layout_tests/fast/doctypes/004.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-row-group-to-inline.html
-/sdcard/android/layout_tests/fast/css-generated-content/spellingToolTip-assert.html
-/sdcard/android/layout_tests/fast/css-generated-content/no-openclose-quote.html
-/sdcard/android/layout_tests/fast/css-generated-content/before-with-first-letter.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-row-group-with-before.html
-/sdcard/android/layout_tests/fast/css-generated-content/010.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-with-before.html
-/sdcard/android/layout_tests/fast/css-generated-content/002.html
-/sdcard/android/layout_tests/fast/css-generated-content/012.html
-/sdcard/android/layout_tests/fast/css-generated-content/004.html
-/sdcard/android/layout_tests/fast/css-generated-content/014.html
-/sdcard/android/layout_tests/fast/css-generated-content/016.html
-/sdcard/android/layout_tests/fast/css-generated-content/008.html
-/sdcard/android/layout_tests/fast/css-generated-content/after-order.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-cell-before-content.html
-/sdcard/android/layout_tests/fast/css-generated-content/visibleContentHiddenParent.html
-/sdcard/android/layout_tests/fast/css-generated-content/inline-display-types.html
-/sdcard/android/layout_tests/fast/css-generated-content/positioned-background-hit-test-crash.html
-/sdcard/android/layout_tests/fast/css-generated-content/001.html
-/sdcard/android/layout_tests/fast/css-generated-content/011.html
-/sdcard/android/layout_tests/fast/css-generated-content/003.html
-/sdcard/android/layout_tests/fast/css-generated-content/beforeAfter-interdocument.html
-/sdcard/android/layout_tests/fast/css-generated-content/013.html
-/sdcard/android/layout_tests/fast/css-generated-content/005.html
-/sdcard/android/layout_tests/fast/css-generated-content/hover-style-change.html
-/sdcard/android/layout_tests/fast/css-generated-content/table-row-with-before.html
-/sdcard/android/layout_tests/fast/css-generated-content/absolute-position-inside-inline.html
-/sdcard/android/layout_tests/fast/css-generated-content/015.html
-/sdcard/android/layout_tests/fast/css-generated-content/hit-test-generated-content.html
-/sdcard/android/layout_tests/fast/css-generated-content/007.html
-/sdcard/android/layout_tests/fast/css-generated-content/009.html
-/sdcard/android/layout_tests/fast/css-generated-content/wbr-with-before-content.html
-/sdcard/android/layout_tests/fast/lists/decimal-leading-zero.html
-/sdcard/android/layout_tests/fast/lists/ol-display-types.html
-/sdcard/android/layout_tests/fast/lists/li-style-alpha-huge-value-crash.html
-/sdcard/android/layout_tests/fast/lists/ol-start-dynamic.html
-/sdcard/android/layout_tests/fast/lists/numeric-markers-outside-list.html
-/sdcard/android/layout_tests/fast/lists/marker-image-error.html
-/sdcard/android/layout_tests/fast/lists/marker-before-empty-inline.html
-/sdcard/android/layout_tests/fast/lists/list-marker-with-line-height.html
-/sdcard/android/layout_tests/fast/lists/scrolled-marker-paint.html
-/sdcard/android/layout_tests/fast/lists/li-values.html
-/sdcard/android/layout_tests/fast/lists/002.html
-/sdcard/android/layout_tests/fast/lists/dynamic-marker-crash.html
-/sdcard/android/layout_tests/fast/lists/list-item-line-height.html
-/sdcard/android/layout_tests/fast/lists/004.html
-/sdcard/android/layout_tests/fast/lists/drag-into-marker.html
-/sdcard/android/layout_tests/fast/lists/list-style-none-crash.html
-/sdcard/android/layout_tests/fast/lists/alpha-list-wrap.html
-/sdcard/android/layout_tests/fast/lists/006.html
-/sdcard/android/layout_tests/fast/lists/ol-start-parsing.html
-/sdcard/android/layout_tests/fast/lists/008.html
-/sdcard/android/layout_tests/fast/lists/inlineBoxWrapperNullCheck.html
-/sdcard/android/layout_tests/fast/lists/w3-list-styles.html
-/sdcard/android/layout_tests/fast/lists/item-not-in-list-line-wrapping.html
-/sdcard/android/layout_tests/fast/lists/olstart.html
-/sdcard/android/layout_tests/fast/lists/big-list-marker.html
-/sdcard/android/layout_tests/fast/lists/markers-in-selection.html
-/sdcard/android/layout_tests/fast/lists/list-style-type-dynamic-change.html
-/sdcard/android/layout_tests/fast/lists/001.html
-/sdcard/android/layout_tests/fast/lists/ordered-list-with-no-ol-tag.html
-/sdcard/android/layout_tests/fast/lists/003.html
-/sdcard/android/layout_tests/fast/lists/005.html
-/sdcard/android/layout_tests/fast/lists/li-br.html
-/sdcard/android/layout_tests/fast/lists/007.html
-/sdcard/android/layout_tests/fast/lists/009.html
-/sdcard/android/layout_tests/fast/transforms/transform-overflow.html
-/sdcard/android/layout_tests/fast/transforms/transforms-with-opacity.html
-/sdcard/android/layout_tests/fast/transforms/transformed-caret.html
-/sdcard/android/layout_tests/fast/transforms/bounding-rect-zoom.html
-/sdcard/android/layout_tests/fast/transforms/matrix-01.html
-/sdcard/android/layout_tests/fast/transforms/matrix-02.html
-/sdcard/android/layout_tests/fast/transforms/overflow-with-transform.html
-/sdcard/android/layout_tests/fast/transforms/transformed-document-element.html
-/sdcard/android/layout_tests/fast/transforms/transforms-with-zoom.html
-/sdcard/android/layout_tests/fast/transforms/transformed-focused-text-input.html
-/sdcard/android/layout_tests/fast/transforms/identity-matrix.html
-/sdcard/android/layout_tests/fast/transforms/transform-on-inline.html
-/sdcard/android/layout_tests/fast/transforms/transform-positioned-ancestor.html
-/sdcard/android/layout_tests/fast/transforms/skew-with-unitless-zero.html
-/sdcard/android/layout_tests/fast/transforms/transform-table-row.html
-/sdcard/android/layout_tests/fast/transforms/shadows.html
-/sdcard/android/layout_tests/fast/transforms/diamond.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusSolid01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDouble01.html
-/sdcard/android/layout_tests/fast/borders/block-mask-overlay-image.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDouble03.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusSolid03.html
-/sdcard/android/layout_tests/fast/borders/border-color-inherit.html
-/sdcard/android/layout_tests/fast/borders/svg-as-border-image-2.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusInvalidColor.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDotted02.html
-/sdcard/android/layout_tests/fast/borders/border-image-scale-transform.html
-/sdcard/android/layout_tests/fast/borders/border-fit.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusArcs01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDashed01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDashed03.html
-/sdcard/android/layout_tests/fast/borders/fieldsetBorderRadius.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusAllStylesAllCorners.html
-/sdcard/android/layout_tests/fast/borders/border-radius-split-inline.html
-/sdcard/android/layout_tests/fast/borders/border-radius-constraints.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusGroove01.html
-/sdcard/android/layout_tests/fast/borders/border-image-omit-right-slice.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDouble02.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusSolid02.html
-/sdcard/android/layout_tests/fast/borders/outline-offset-min-assert.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusSolid04.html
-/sdcard/android/layout_tests/fast/borders/border-radius-huge-assert.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusInset01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDotted01.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusOutset01.html
-/sdcard/android/layout_tests/fast/borders/svg-as-border-image.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDotted03.html
-/sdcard/android/layout_tests/fast/borders/border-image-border-radius.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusDashed02.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusRidge01.html
-/sdcard/android/layout_tests/fast/borders/border-image-rotate-transform.html
-/sdcard/android/layout_tests/fast/borders/inline-mask-overlay-image.html
-/sdcard/android/layout_tests/fast/borders/borderRadiusGroove02.html
-/sdcard/android/layout_tests/fast/borders/border-image-01.html
-/sdcard/android/layout_tests/fast/innerHTML/001.html
-/sdcard/android/layout_tests/fast/innerHTML/002.html
-/sdcard/android/layout_tests/fast/innerHTML/003.html
-/sdcard/android/layout_tests/fast/innerHTML/006.html
-/sdcard/android/layout_tests/fast/selectors/175a.html
-/sdcard/android/layout_tests/fast/selectors/155c.html
-/sdcard/android/layout_tests/fast/selectors/059.html
-/sdcard/android/layout_tests/fast/selectors/066b.html
-/sdcard/android/layout_tests/fast/selectors/168.html
-/sdcard/android/layout_tests/fast/selectors/177a.html
-/sdcard/android/layout_tests/fast/selectors/087b.html
-/sdcard/android/layout_tests/fast/selectors/020.html
-/sdcard/android/layout_tests/fast/selectors/012.html
-/sdcard/android/layout_tests/fast/selectors/040.html
-/sdcard/android/layout_tests/fast/selectors/004.html
-/sdcard/android/layout_tests/fast/selectors/032.html
-/sdcard/android/layout_tests/fast/selectors/060.html
-/sdcard/android/layout_tests/fast/selectors/016.html
-/sdcard/android/layout_tests/fast/selectors/044.html
-/sdcard/android/layout_tests/fast/selectors/008.html
-/sdcard/android/layout_tests/fast/selectors/072.html
-/sdcard/android/layout_tests/fast/selectors/064.html
-/sdcard/android/layout_tests/fast/selectors/056.html
-/sdcard/android/layout_tests/fast/selectors/018b.html
-/sdcard/android/layout_tests/fast/selectors/090b.html
-/sdcard/android/layout_tests/fast/selectors/045c.html
-/sdcard/android/layout_tests/fast/selectors/170d.html
-/sdcard/android/layout_tests/fast/selectors/157.html
-/sdcard/android/layout_tests/fast/selectors/039b.html
-/sdcard/android/layout_tests/fast/selectors/156b.html
-/sdcard/android/layout_tests/fast/selectors/175b.html
-/sdcard/android/layout_tests/fast/selectors/155d.html
-/sdcard/android/layout_tests/fast/selectors/167a.html
-/sdcard/android/layout_tests/fast/selectors/169.html
-/sdcard/android/layout_tests/fast/selectors/077b.html
-/sdcard/android/layout_tests/fast/selectors/177b.html
-/sdcard/android/layout_tests/fast/selectors/169a.html
-/sdcard/android/layout_tests/fast/selectors/001.html
-/sdcard/android/layout_tests/fast/selectors/021.html
-/sdcard/android/layout_tests/fast/selectors/unqualified-hover-quirks.html
-/sdcard/android/layout_tests/fast/selectors/013.html
-/sdcard/android/layout_tests/fast/selectors/041.html
-/sdcard/android/layout_tests/fast/selectors/021b.html
-/sdcard/android/layout_tests/fast/selectors/005.html
-/sdcard/android/layout_tests/fast/selectors/061.html
-/sdcard/android/layout_tests/fast/selectors/170.html
-/sdcard/android/layout_tests/fast/selectors/017.html
-/sdcard/android/layout_tests/fast/selectors/170a.html
-/sdcard/android/layout_tests/fast/selectors/009.html
-/sdcard/android/layout_tests/fast/selectors/045.html
-/sdcard/android/layout_tests/fast/selectors/154.html
-/sdcard/android/layout_tests/fast/selectors/044b.html
-/sdcard/android/layout_tests/fast/selectors/065.html
-/sdcard/android/layout_tests/fast/selectors/155a.html
-/sdcard/android/layout_tests/fast/selectors/166.html
-/sdcard/android/layout_tests/fast/selectors/158.html
-/sdcard/android/layout_tests/fast/selectors/077.html
-/sdcard/android/layout_tests/fast/selectors/175c.html
-/sdcard/android/layout_tests/fast/selectors/089.html
-/sdcard/android/layout_tests/fast/selectors/088b.html
-/sdcard/android/layout_tests/fast/selectors/nondeterministic-combinators.html
-/sdcard/android/layout_tests/fast/selectors/unqualified-hover-strict.html
-/sdcard/android/layout_tests/fast/selectors/010.html
-/sdcard/android/layout_tests/fast/selectors/002.html
-/sdcard/android/layout_tests/fast/selectors/014.html
-/sdcard/android/layout_tests/fast/selectors/042.html
-/sdcard/android/layout_tests/fast/selectors/006.html
-/sdcard/android/layout_tests/fast/selectors/034.html
-/sdcard/android/layout_tests/fast/selectors/062.html
-/sdcard/android/layout_tests/fast/selectors/007a.html
-/sdcard/android/layout_tests/fast/selectors/054.html
-/sdcard/android/layout_tests/fast/selectors/018.html
-/sdcard/android/layout_tests/fast/selectors/046.html
-/sdcard/android/layout_tests/fast/selectors/170b.html
-/sdcard/android/layout_tests/fast/selectors/072b.html
-/sdcard/android/layout_tests/fast/selectors/044c.html
-/sdcard/android/layout_tests/fast/selectors/038.html
-/sdcard/android/layout_tests/fast/selectors/155.html
-/sdcard/android/layout_tests/fast/selectors/066.html
-/sdcard/android/layout_tests/fast/selectors/058.html
-/sdcard/android/layout_tests/fast/selectors/155b.html
-/sdcard/android/layout_tests/fast/selectors/166a.html
-/sdcard/android/layout_tests/fast/selectors/167.html
-/sdcard/android/layout_tests/fast/selectors/159.html
-/sdcard/android/layout_tests/fast/selectors/168a.html
-/sdcard/android/layout_tests/fast/selectors/078b.html
-/sdcard/android/layout_tests/fast/selectors/011.html
-/sdcard/android/layout_tests/fast/selectors/003.html
-/sdcard/android/layout_tests/fast/selectors/015.html
-/sdcard/android/layout_tests/fast/selectors/043.html
-/sdcard/android/layout_tests/fast/selectors/160.html
-/sdcard/android/layout_tests/fast/selectors/063.html
-/sdcard/android/layout_tests/fast/selectors/043b.html
-/sdcard/android/layout_tests/fast/selectors/007b.html
-/sdcard/android/layout_tests/fast/selectors/027.html
-/sdcard/android/layout_tests/fast/selectors/019.html
-/sdcard/android/layout_tests/fast/selectors/083.html
-/sdcard/android/layout_tests/fast/selectors/045b.html
-/sdcard/android/layout_tests/fast/selectors/170c.html
-/sdcard/android/layout_tests/fast/selectors/044d.html
-/sdcard/android/layout_tests/fast/selectors/039.html
-/sdcard/android/layout_tests/fast/overflow/overflow-focus-ring.html
-/sdcard/android/layout_tests/fast/overflow/overflow-x-y.html
-/sdcard/android/layout_tests/fast/overflow/overflow-text-hit-testing.html
-/sdcard/android/layout_tests/fast/overflow/unreachable-overflow-rtl-bug.html
-/sdcard/android/layout_tests/fast/overflow/overflow-auto-position-absolute.html
-/sdcard/android/layout_tests/fast/overflow/scrollRevealButton.html
-/sdcard/android/layout_tests/fast/overflow/overflow-rtl-inline-scrollbar.html
-/sdcard/android/layout_tests/fast/overflow/002.html
-/sdcard/android/layout_tests/fast/overflow/overflow-rtl.html
-/sdcard/android/layout_tests/fast/overflow/004.html
-/sdcard/android/layout_tests/fast/overflow/overflow-stacking.html
-/sdcard/android/layout_tests/fast/overflow/006.html
-/sdcard/android/layout_tests/fast/overflow/border-radius-clipping.html
-/sdcard/android/layout_tests/fast/overflow/scrollbar-position-update.html
-/sdcard/android/layout_tests/fast/overflow/008.html
-/sdcard/android/layout_tests/fast/overflow/overflow-float-stacking.html
-/sdcard/android/layout_tests/fast/overflow/scroll-nested-positioned-layer-in-overflow.html
-/sdcard/android/layout_tests/fast/overflow/image-selection-highlight.html
-/sdcard/android/layout_tests/fast/overflow/childFocusRingClip.html
-/sdcard/android/layout_tests/fast/overflow/position-relative.html
-/sdcard/android/layout_tests/fast/overflow/dynamic-hidden.html
-/sdcard/android/layout_tests/fast/overflow/overflow_hidden.html
-/sdcard/android/layout_tests/fast/overflow/clip-rects-fixed-ancestor.html
-/sdcard/android/layout_tests/fast/overflow/infiniteRecursionGuard.html
-/sdcard/android/layout_tests/fast/overflow/float-in-relpositioned.html
-/sdcard/android/layout_tests/fast/overflow/table-overflow-float.html
-/sdcard/android/layout_tests/fast/overflow/003.xml
-/sdcard/android/layout_tests/fast/overflow/overflow-auto-table.html
-/sdcard/android/layout_tests/fast/overflow/unreachable-content-test.html
-/sdcard/android/layout_tests/fast/overflow/infiniteRecursion.html
-/sdcard/android/layout_tests/fast/overflow/001.html
-/sdcard/android/layout_tests/fast/overflow/hit-test-overflow-controls.html
-/sdcard/android/layout_tests/fast/overflow/005.html
-/sdcard/android/layout_tests/fast/overflow/007.html
-/sdcard/android/layout_tests/fast/overflow/overflow-with-local-background-attachment.html
-/sdcard/android/layout_tests/fast/overflow/hidden-scrollbar-resize.html
-/sdcard/android/layout_tests/fast/events/context-no-deselect.html
-/sdcard/android/layout_tests/fast/events/autoscroll.html
-/sdcard/android/layout_tests/fast/events/5056619.html
-/sdcard/android/layout_tests/fast/events/updateLayoutForHitTest.html
-/sdcard/android/layout_tests/fast/events/label-focus.html
-/sdcard/android/layout_tests/fast/events/keydown-1.html
-/sdcard/android/layout_tests/fast/events/onloadFrameCrash.html
-/sdcard/android/layout_tests/fast/events/event-listener-on-link.html
-/sdcard/android/layout_tests/fast/events/onload-re-entry.html
-/sdcard/android/layout_tests/fast/events/standalone-image-drag-to-editable.html
-/sdcard/android/layout_tests/fast/events/focusingUnloadedFrame.html
-/sdcard/android/layout_tests/fast/events/event-sender-mouse-moved.html
-/sdcard/android/layout_tests/fast/events/reveal-link-when-focused.html
-/sdcard/android/layout_tests/fast/events/mouseout-dead-node.html
-/sdcard/android/layout_tests/fast/html/keygen.html
-/sdcard/android/layout_tests/fast/html/marquee-scroll.html
-/sdcard/android/layout_tests/fast/html/link-rel-stylesheet.html
-/sdcard/android/layout_tests/fast/html/listing.html
-/sdcard/android/layout_tests/fast/images/svg-as-background.html
-/sdcard/android/layout_tests/fast/images/pdf-as-image-landscape.html
-/sdcard/android/layout_tests/fast/images/pdf-as-tiled-background.html
-/sdcard/android/layout_tests/fast/images/pdf-as-image.html
-/sdcard/android/layout_tests/fast/images/image-map-anchor-children.html
-/sdcard/android/layout_tests/fast/images/animated-gif-with-offsets.html
-/sdcard/android/layout_tests/fast/images/favicon-as-image.html
-/sdcard/android/layout_tests/fast/images/svg-width-100p-as-background.html
-/sdcard/android/layout_tests/fast/images/svg-as-tiled-background.html
-/sdcard/android/layout_tests/fast/images/svg-as-image.html
-/sdcard/android/layout_tests/fast/images/object-image.html
-/sdcard/android/layout_tests/fast/images/pdf-as-background.html
-/sdcard/android/layout_tests/fast/images/imagemap-case.html
-/sdcard/android/layout_tests/fast/images/svg-as-relative-image.html
-/sdcard/android/layout_tests/fast/images/embed-image.html
-/sdcard/android/layout_tests/fast/images/animated-svg-as-image.html
-/sdcard/android/layout_tests/fast/images/image-in-map.html
-/sdcard/android/layout_tests/fast/images/icon-decoding.html
-/sdcard/android/layout_tests/fast/inline-block/14498-positionForCoordinates.html
-/sdcard/android/layout_tests/fast/inline-block/001.html
-/sdcard/android/layout_tests/fast/inline-block/002.html
-/sdcard/android/layout_tests/fast/inline-block/003.html
-/sdcard/android/layout_tests/fast/inline-block/004.html
-/sdcard/android/layout_tests/fast/inline-block/005.html
-/sdcard/android/layout_tests/fast/inline-block/contenteditable-baseline.html
-/sdcard/android/layout_tests/fast/inline-block/006.html
-/sdcard/android/layout_tests/fast/inline-block/inline-block-vertical-align.html
-/sdcard/android/layout_tests/fast/inline-block/tricky-baseline.html
-/sdcard/android/layout_tests/fast/inline-block/overflow-clip.html
-/sdcard/android/layout_tests/fast/inspector/matchedrules.html
-/sdcard/android/layout_tests/fast/inspector/style.html
-/sdcard/android/layout_tests/fast/flexbox/010.html
-/sdcard/android/layout_tests/fast/flexbox/020.html
-/sdcard/android/layout_tests/fast/flexbox/002.html
-/sdcard/android/layout_tests/fast/flexbox/012.html
-/sdcard/android/layout_tests/fast/flexbox/022.html
-/sdcard/android/layout_tests/fast/flexbox/004.html
-/sdcard/android/layout_tests/fast/flexbox/014.html
-/sdcard/android/layout_tests/fast/flexbox/024.html
-/sdcard/android/layout_tests/fast/flexbox/006.html
-/sdcard/android/layout_tests/fast/flexbox/016.html
-/sdcard/android/layout_tests/fast/flexbox/026.html
-/sdcard/android/layout_tests/fast/flexbox/008.html
-/sdcard/android/layout_tests/fast/flexbox/018.html
-/sdcard/android/layout_tests/fast/flexbox/001.html
-/sdcard/android/layout_tests/fast/flexbox/011.html
-/sdcard/android/layout_tests/fast/flexbox/003.html
-/sdcard/android/layout_tests/fast/flexbox/021.html
-/sdcard/android/layout_tests/fast/flexbox/013.html
-/sdcard/android/layout_tests/fast/flexbox/005.html
-/sdcard/android/layout_tests/fast/flexbox/023.html
-/sdcard/android/layout_tests/fast/flexbox/015.html
-/sdcard/android/layout_tests/fast/flexbox/007.html
-/sdcard/android/layout_tests/fast/flexbox/025.html
-/sdcard/android/layout_tests/fast/flexbox/017.html
-/sdcard/android/layout_tests/fast/flexbox/009.html
-/sdcard/android/layout_tests/fast/flexbox/019.html
-/sdcard/android/layout_tests/fast/flexbox/flex-hang.html
-/sdcard/android/layout_tests/fast/tokenizer/missing-style-end-tag-1.html
-/sdcard/android/layout_tests/fast/tokenizer/002.html
-/sdcard/android/layout_tests/fast/tokenizer/missing-title-end-tag-2.html
-/sdcard/android/layout_tests/fast/tokenizer/script-after-frameset.html
-/sdcard/android/layout_tests/fast/tokenizer/missing-style-end-tag-2.html
-/sdcard/android/layout_tests/fast/tokenizer/external-script-document-write.html
-/sdcard/android/layout_tests/fast/tokenizer/script_extra_close.html
-/sdcard/android/layout_tests/fast/tokenizer/001.html
-/sdcard/android/layout_tests/fast/tokenizer/003.html
-/sdcard/android/layout_tests/fast/tokenizer/missing-title-end-tag-1.html
-/sdcard/android/layout_tests/fast/tokenizer/external-script-document-write_2.html
-/sdcard/android/layout_tests/fast/box-shadow/transform-fringing.html
-/sdcard/android/layout_tests/fast/box-shadow/spread.html
-/sdcard/android/layout_tests/fast/box-shadow/border-radius-big.html
-/sdcard/android/layout_tests/fast/box-shadow/inset.html
-/sdcard/android/layout_tests/fast/box-shadow/basic-shadows.html
-/sdcard/android/layout_tests/fast/js/exception-linenums-in-html-3.html
-/sdcard/android/layout_tests/fast/js/missing-style-end-tag-js.html
-/sdcard/android/layout_tests/fast/inline/continuation-outlines-with-layers.html
-/sdcard/android/layout_tests/fast/inline/inline-padding-disables-text-quirk.html
-/sdcard/android/layout_tests/fast/inline/emptyInlinesWithinLists.html
-/sdcard/android/layout_tests/fast/inline/drawStyledEmptyInlines.html
-/sdcard/android/layout_tests/fast/inline/long-wrapped-line.html
-/sdcard/android/layout_tests/fast/inline/inline-continuation-borders.html
-/sdcard/android/layout_tests/fast/inline/vertical-align-text-bottom.html
-/sdcard/android/layout_tests/fast/inline/25277-2.html
-/sdcard/android/layout_tests/fast/inline/25277.html
-/sdcard/android/layout_tests/fast/inline/drawStyledEmptyInlinesWithWS.html
-/sdcard/android/layout_tests/fast/inline/positionedLifetime.html
-/sdcard/android/layout_tests/fast/inline/dirtyLinesForInline.html
-/sdcard/android/layout_tests/fast/inline/001.html
-/sdcard/android/layout_tests/fast/inline/002.html
-/sdcard/android/layout_tests/fast/inline/inline-text-quirk-bpm.html
-/sdcard/android/layout_tests/fast/inline/inline-borders-with-bidi-override.html
-/sdcard/android/layout_tests/fast/inline/styledEmptyInlinesWithBRs.html
-/sdcard/android/layout_tests/fast/inline/continuation-outlines.html
-/sdcard/android/layout_tests/fast/inline/br-text-decoration.html
-/sdcard/android/layout_tests/fast/inline/outline-continuations.html
-/sdcard/android/layout_tests/fast/inline/percentage-margins.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/010.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/001.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/002.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/003.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/004.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/005.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/006.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/007.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/008.html
-/sdcard/android/layout_tests/fast/body-propagation/background-image/009.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/001.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/002.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/003.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/004.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/005.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/006.html
-/sdcard/android/layout_tests/fast/body-propagation/overflow/007.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/001.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/002.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/003.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/004.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/005.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/006.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/007.html
-/sdcard/android/layout_tests/fast/body-propagation/background-color/008.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/colSpan.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/createCaption.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/frameless-location-bugzilla10837.html
-/sdcard/android/layout_tests/fast/dom/Element/null-offset-parent.html
-/sdcard/android/layout_tests/fast/dom/Element/class-attribute-whitespace.html
-/sdcard/android/layout_tests/fast/dom/HTMLLinkElement/pending-stylesheet-count.html
-/sdcard/android/layout_tests/fast/dom/HTMLStyleElement/insert-parser-generated.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableColElement/resize-table-using-col-width.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-image-alt-text.html
-/sdcard/android/layout_tests/fast/dom/Window/open-existing-pop-up-blocking.html
-/sdcard/android/layout_tests/fast/dom/Window/btoa-pnglet.html
-/sdcard/android/layout_tests/fast/dom/HTMLObjectElement/vspace-hspace-as-number.html
-/sdcard/android/layout_tests/fast/dom/HTMLElement/bdo.html
-/sdcard/android/layout_tests/fast/dom/Range/surroundContents-1.html
-/sdcard/android/layout_tests/fast/dom/Range/create-contextual-fragment.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead1.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead2.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead3.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead4.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/textInHead5.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/head-link-style-href-check.html
-/sdcard/android/layout_tests/fast/dom/HTMLTextAreaElement/reset-textarea.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-alt-text.html
-/sdcard/android/layout_tests/fast/dom/dom-parse-serialize.html
-/sdcard/android/layout_tests/fast/dom/focus-contenteditable.html
-/sdcard/android/layout_tests/fast/dom/jsDevicePixelRatio.html
-/sdcard/android/layout_tests/fast/dom/isindex-001.html
-/sdcard/android/layout_tests/fast/dom/css-cached-import-rule.html
-/sdcard/android/layout_tests/fast/dom/dom-parse-serialize-display.html
-/sdcard/android/layout_tests/fast/dom/css-rule-functions.html
-/sdcard/android/layout_tests/fast/dom/createDocumentType.html
-/sdcard/android/layout_tests/fast/dom/clientWidthAfterDocumentIsRemoved.html
-/sdcard/android/layout_tests/fast/dom/css-inline-style-important.html
-/sdcard/android/layout_tests/fast/dom/replaceChild.html
-/sdcard/android/layout_tests/fast/dom/anchor-text.html
-/sdcard/android/layout_tests/fast/dom/importNodeHTML.html
-/sdcard/android/layout_tests/fast/dom/gc-10.html
-/sdcard/android/layout_tests/fast/dom/inner-text.html
-/sdcard/android/layout_tests/fast/dom/isindex-002.html
-/sdcard/android/layout_tests/fast/dom/outerText.html
-/sdcard/android/layout_tests/fast/dom/row-inner-text.html
-/sdcard/android/layout_tests/fast/dom/blur-contenteditable.html
-/sdcard/android/layout_tests/fast/dom/setPrimitiveValue.html
-/sdcard/android/layout_tests/fast/dom/delete-contents.html
-/sdcard/android/layout_tests/fast/dom/children-nodes.html
-/sdcard/android/layout_tests/fast/dom/css-mediarule-deleteRule-update.html
-/sdcard/android/layout_tests/fast/dom/attr_dead_doc.html
-/sdcard/android/layout_tests/fast/dom/clone-contents-0-end-offset.html
-/sdcard/android/layout_tests/fast/dom/comment-not-documentElement.html
-/sdcard/android/layout_tests/fast/dom/clone-node-dynamic-style.html
-/sdcard/android/layout_tests/fast/dom/css-mediarule-insertRule-update.html
-/sdcard/android/layout_tests/fast/dom/css-insert-import-rule.html
-/sdcard/android/layout_tests/fast/dom/stripNullFromTextNodes.html
-/sdcard/android/layout_tests/fast/gradients/crash-on-zero-radius.html
-/sdcard/android/layout_tests/fast/gradients/generated-gradients.html
-/sdcard/android/layout_tests/fast/gradients/background-clipped.html
-/sdcard/android/layout_tests/fast/gradients/list-item-gradient.html
-/sdcard/android/layout_tests/fast/gradients/border-image-gradient-sides-and-corners.html
-/sdcard/android/layout_tests/fast/gradients/simple-gradients.html
-/sdcard/android/layout_tests/fast/gradients/border-image-gradient.html
-/sdcard/android/layout_tests/fast/invalid/table-inside-stray-table-content.html
-/sdcard/android/layout_tests/fast/invalid/010.html
-/sdcard/android/layout_tests/fast/invalid/002.html
-/sdcard/android/layout_tests/fast/invalid/012.html
-/sdcard/android/layout_tests/fast/invalid/004.html
-/sdcard/android/layout_tests/fast/invalid/014.html
-/sdcard/android/layout_tests/fast/invalid/006.html
-/sdcard/android/layout_tests/fast/invalid/016.html
-/sdcard/android/layout_tests/fast/invalid/008.html
-/sdcard/android/layout_tests/fast/invalid/018.html
-/sdcard/android/layout_tests/fast/invalid/junk-data.xml
-/sdcard/android/layout_tests/fast/invalid/missing-dl-end-tag.html
-/sdcard/android/layout_tests/fast/invalid/td-inside-object.html
-/sdcard/android/layout_tests/fast/invalid/table-residual-style-crash.html
-/sdcard/android/layout_tests/fast/invalid/missing-font-end-tag.html
-/sdcard/android/layout_tests/fast/invalid/missing-dt-end-tag.html
-/sdcard/android/layout_tests/fast/invalid/020.xml
-/sdcard/android/layout_tests/fast/invalid/001.html
-/sdcard/android/layout_tests/fast/invalid/nestedh3s.html
-/sdcard/android/layout_tests/fast/invalid/011.html
-/sdcard/android/layout_tests/fast/invalid/003.html
-/sdcard/android/layout_tests/fast/invalid/021.html
-/sdcard/android/layout_tests/fast/invalid/013.html
-/sdcard/android/layout_tests/fast/invalid/005.html
-/sdcard/android/layout_tests/fast/invalid/015.html
-/sdcard/android/layout_tests/fast/invalid/007.html
-/sdcard/android/layout_tests/fast/invalid/residual-style.html
-/sdcard/android/layout_tests/fast/invalid/017.html
-/sdcard/android/layout_tests/fast/invalid/009.html
-/sdcard/android/layout_tests/fast/invalid/missing-address-end-tag.html
-/sdcard/android/layout_tests/fast/invalid/019.html
-/sdcard/android/layout_tests/fast/forms/input-width.html
-/sdcard/android/layout_tests/fast/forms/select-item-background-clip.html
-/sdcard/android/layout_tests/fast/forms/radio-nested-labels.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-preventDefault.html
-/sdcard/android/layout_tests/fast/forms/input-double-click-selection-gap-bug.html
-/sdcard/android/layout_tests/fast/forms/preserveFormDuringResidualStyle.html
-/sdcard/android/layout_tests/fast/forms/input-text-option-delete.html
-/sdcard/android/layout_tests/fast/forms/textfield-overflow.html
-/sdcard/android/layout_tests/fast/forms/search-zoomed.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label02.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-visibility.html
-/sdcard/android/layout_tests/fast/forms/search-vertical-alignment.html
-/sdcard/android/layout_tests/fast/forms/file-input-direction.html
-/sdcard/android/layout_tests/fast/forms/select-change-listbox-size.html
-/sdcard/android/layout_tests/fast/forms/002.html
-/sdcard/android/layout_tests/fast/forms/textarea-align.html
-/sdcard/android/layout_tests/fast/forms/control-restrict-line-height.html
-/sdcard/android/layout_tests/fast/forms/basic-textareas.html
-/sdcard/android/layout_tests/fast/forms/button-generated-content.html
-/sdcard/android/layout_tests/fast/forms/input-text-paste-maxlength.html
-/sdcard/android/layout_tests/fast/forms/select-display-none-style-resolve.html
-/sdcard/android/layout_tests/fast/forms/input-readonly-autoscroll.html
-/sdcard/android/layout_tests/fast/forms/thumbslider-no-parent-slider.html
-/sdcard/android/layout_tests/fast/forms/listbox-clip.html
-/sdcard/android/layout_tests/fast/forms/textarea-setinnerhtml.html
-/sdcard/android/layout_tests/fast/forms/input-align.html
-/sdcard/android/layout_tests/fast/forms/button-cannot-be-nested.html
-/sdcard/android/layout_tests/fast/forms/input-type-change.html
-/sdcard/android/layout_tests/fast/forms/menulist-option-wrap.html
-/sdcard/android/layout_tests/fast/forms/select-empty-option-height.html
-/sdcard/android/layout_tests/fast/forms/float-before-fieldset.html
-/sdcard/android/layout_tests/fast/forms/radio_checked.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-focus.html
-/sdcard/android/layout_tests/fast/forms/input-value.html
-/sdcard/android/layout_tests/fast/forms/select-selected.html
-/sdcard/android/layout_tests/fast/forms/control-clip-overflow.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-default-bkcolor.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label03.html
-/sdcard/android/layout_tests/fast/forms/button-default-title.html
-/sdcard/android/layout_tests/fast/forms/hidden-listbox.html
-/sdcard/android/layout_tests/fast/forms/input-baseline.html
-/sdcard/android/layout_tests/fast/forms/targeted-frame-submission.html
-/sdcard/android/layout_tests/fast/forms/003.html
-/sdcard/android/layout_tests/fast/forms/text-control-intrinsic-widths.html
-/sdcard/android/layout_tests/fast/forms/select-change-listbox-to-popup.html
-/sdcard/android/layout_tests/fast/forms/radio_checked_dynamic.html
-/sdcard/android/layout_tests/fast/forms/text-style-color.html
-/sdcard/android/layout_tests/fast/forms/button-sizes.html
-/sdcard/android/layout_tests/fast/forms/listbox-scrollbar-incremental-load.html
-/sdcard/android/layout_tests/fast/forms/password-placeholder.html
-/sdcard/android/layout_tests/fast/forms/button-style-color.html
-/sdcard/android/layout_tests/fast/forms/caret-rtl.html
-/sdcard/android/layout_tests/fast/forms/listbox-deselect-scroll.html
-/sdcard/android/layout_tests/fast/forms/select-initial-position.html
-/sdcard/android/layout_tests/fast/forms/placeholder-set-attribute.html
-/sdcard/android/layout_tests/fast/forms/radio-attr-order.html
-/sdcard/android/layout_tests/fast/forms/input-disabled-color.html
-/sdcard/android/layout_tests/fast/forms/fieldset-align.html
-/sdcard/android/layout_tests/fast/forms/select-baseline.html
-/sdcard/android/layout_tests/fast/forms/stuff-on-my-optgroup.html
-/sdcard/android/layout_tests/fast/forms/input-align-image.html
-/sdcard/android/layout_tests/fast/forms/option-index.html
-/sdcard/android/layout_tests/fast/forms/menulist-clip.html
-/sdcard/android/layout_tests/fast/forms/search-display-none-cancel-button.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label04.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-disabled.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-height.html
-/sdcard/android/layout_tests/fast/forms/004.html
-/sdcard/android/layout_tests/fast/forms/search-placeholder-value-changed.html
-/sdcard/android/layout_tests/fast/forms/input-field-text-truncated.html
-/sdcard/android/layout_tests/fast/forms/input-type-text-min-width.html
-/sdcard/android/layout_tests/fast/forms/slider-thumb-shared-style.html
-/sdcard/android/layout_tests/fast/forms/option-script.html
-/sdcard/android/layout_tests/fast/forms/input-paste-undo.html
-/sdcard/android/layout_tests/fast/forms/button-white-space.html
-/sdcard/android/layout_tests/fast/forms/slider-padding.html
-/sdcard/android/layout_tests/fast/forms/button-submit.html
-/sdcard/android/layout_tests/fast/forms/input-text-double-click.html
-/sdcard/android/layout_tests/fast/forms/form-hides-table.html
-/sdcard/android/layout_tests/fast/forms/listbox-width-change.html
-/sdcard/android/layout_tests/fast/forms/button-positioned.html
-/sdcard/android/layout_tests/fast/forms/control-clip.html
-/sdcard/android/layout_tests/fast/forms/listbox-hit-test-zoomed.html
-/sdcard/android/layout_tests/fast/forms/thumbslider-crash.html
-/sdcard/android/layout_tests/fast/forms/input-first-letter.html
-/sdcard/android/layout_tests/fast/forms/search-rtl.html
-/sdcard/android/layout_tests/fast/forms/isindex-placeholder.html
-/sdcard/android/layout_tests/fast/forms/plaintext-mode-2.html
-/sdcard/android/layout_tests/fast/forms/select-change-popup-to-listbox.html
-/sdcard/android/layout_tests/fast/forms/blankbuttons.html
-/sdcard/android/layout_tests/fast/forms/input-text-maxlength.html
-/sdcard/android/layout_tests/fast/forms/password-placeholder-text-security.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label05.html
-/sdcard/android/layout_tests/fast/forms/visual-hebrew-text-field.html
-/sdcard/android/layout_tests/fast/forms/005.html
-/sdcard/android/layout_tests/fast/forms/search-styled.html
-/sdcard/android/layout_tests/fast/forms/file-input-disabled.html
-/sdcard/android/layout_tests/fast/forms/select-disabled-appearance.html
-/sdcard/android/layout_tests/fast/forms/input-type-change2.html
-/sdcard/android/layout_tests/fast/forms/select-block-background.html
-/sdcard/android/layout_tests/fast/forms/select-dirty-parent-pref-widths.html
-/sdcard/android/layout_tests/fast/forms/range-thumb-height-percentage.html
-/sdcard/android/layout_tests/fast/forms/select-visual-hebrew.html
-/sdcard/android/layout_tests/fast/forms/textAreaLineHeight.html
-/sdcard/android/layout_tests/fast/forms/option-text-clip.html
-/sdcard/android/layout_tests/fast/forms/formmove.html
-/sdcard/android/layout_tests/fast/forms/textfield-outline.html
-/sdcard/android/layout_tests/fast/forms/button-text-transform.html
-/sdcard/android/layout_tests/fast/forms/textarea-scroll-height.html
-/sdcard/android/layout_tests/fast/forms/button-table-styles.html
-/sdcard/android/layout_tests/fast/forms/box-shadow-override.html
-/sdcard/android/layout_tests/fast/forms/checkbox-radio-onchange.html
-/sdcard/android/layout_tests/fast/forms/searchfield-heights.html
-/sdcard/android/layout_tests/fast/forms/input-spaces.html
-/sdcard/android/layout_tests/fast/forms/textarea-scrollbar.html
-/sdcard/android/layout_tests/fast/forms/minWidthPercent.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label06.html
-/sdcard/android/layout_tests/fast/forms/placeholder-pseudo-style.html
-/sdcard/android/layout_tests/fast/forms/menulist-width-change.html
-/sdcard/android/layout_tests/fast/forms/input-text-drag-down.html
-/sdcard/android/layout_tests/fast/forms/option-strip-whitespace.html
-/sdcard/android/layout_tests/fast/forms/006.html
-/sdcard/android/layout_tests/fast/forms/input-no-renderer.html
-/sdcard/android/layout_tests/fast/forms/input-text-click-outside.html
-/sdcard/android/layout_tests/fast/forms/input-text-scroll-left-on-blur.html
-/sdcard/android/layout_tests/fast/forms/form-element-geometry.html
-/sdcard/android/layout_tests/fast/forms/input-table.html
-/sdcard/android/layout_tests/fast/forms/textarea-scrolled-type.html
-/sdcard/android/layout_tests/fast/forms/select-align.html
-/sdcard/android/layout_tests/fast/forms/select-writing-direction-natural.html
-/sdcard/android/layout_tests/fast/forms/search-cancel-button-style-sharing.html
-/sdcard/android/layout_tests/fast/forms/tabbing-input-iframe.html
-/sdcard/android/layout_tests/fast/forms/hidden-input-file.html
-/sdcard/android/layout_tests/fast/forms/menulist-deselect-update.html
-/sdcard/android/layout_tests/fast/forms/slider-thumb-stylability.html
-/sdcard/android/layout_tests/fast/forms/input-readonly-dimmed.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-width.html
-/sdcard/android/layout_tests/fast/forms/select-list-box-with-height.html
-/sdcard/android/layout_tests/fast/forms/textarea-rows-cols.html
-/sdcard/android/layout_tests/fast/forms/button-align.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-readonly.html
-/sdcard/android/layout_tests/fast/forms/form-added-to-table.html
-/sdcard/android/layout_tests/fast/forms/menulist-no-overflow.html
-/sdcard/android/layout_tests/fast/forms/formmove2.html
-/sdcard/android/layout_tests/fast/forms/input-text-word-wrap.html
-/sdcard/android/layout_tests/fast/forms/listbox-selection-2.html
-/sdcard/android/layout_tests/fast/forms/input-readonly-empty.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label07.html
-/sdcard/android/layout_tests/fast/forms/007.html
-/sdcard/android/layout_tests/fast/forms/indeterminate.html
-/sdcard/android/layout_tests/fast/forms/negativeLineHeight.html
-/sdcard/android/layout_tests/fast/forms/select-style.html
-/sdcard/android/layout_tests/fast/forms/select-size.html
-/sdcard/android/layout_tests/fast/forms/menulist-separator-painting.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_label01.html
-/sdcard/android/layout_tests/fast/forms/fieldset-with-float.html
-/sdcard/android/layout_tests/fast/forms/floating-textfield-relayout.html
-/sdcard/android/layout_tests/fast/forms/button-inner-block-reuse.html
-/sdcard/android/layout_tests/fast/forms/001.html
-/sdcard/android/layout_tests/fast/forms/input-text-click-inside.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-selection.html
-/sdcard/android/layout_tests/fast/forms/menulist-narrow-width.html
-/sdcard/android/layout_tests/fast/forms/linebox-overflow-in-textarea-padding.html
-/sdcard/android/layout_tests/fast/forms/menulist-restrict-line-height.html
-/sdcard/android/layout_tests/fast/forms/textarea-width.html
-/sdcard/android/layout_tests/fast/forms/disabled-select-change-index.html
-/sdcard/android/layout_tests/fast/forms/formmove3.html
-/sdcard/android/layout_tests/fast/forms/placeholder-set-value.html
-/sdcard/android/layout_tests/fast/forms/input-text-self-emptying-click.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-bkcolor.html
-/sdcard/android/layout_tests/fast/forms/search-transformed.html
-/sdcard/android/layout_tests/fast/forms/image-border.html
-/sdcard/android/layout_tests/fast/forms/encoding-test.html
-/sdcard/android/layout_tests/fast/forms/form-in-malformed-markup.html
-/sdcard/android/layout_tests/fast/forms/menulist-style-color.html
-/sdcard/android/layout_tests/fast/compact/001.html
-/sdcard/android/layout_tests/fast/compact/002.html
-/sdcard/android/layout_tests/fast/compact/003.html
-/sdcard/android/layout_tests/fast/clip/nestedTransparencyClip.html
-/sdcard/android/layout_tests/fast/clip/overflow-border-radius-clip.html
-/sdcard/android/layout_tests/fast/clip/outline-overflowClip.html
-/sdcard/android/layout_tests/fast/clip/001.html
-/sdcard/android/layout_tests/fast/clip/010.html
-/sdcard/android/layout_tests/fast/clip/002.html
-/sdcard/android/layout_tests/fast/clip/011.html
-/sdcard/android/layout_tests/fast/clip/003.html
-/sdcard/android/layout_tests/fast/clip/012.html
-/sdcard/android/layout_tests/fast/clip/004.html
-/sdcard/android/layout_tests/fast/clip/013.html
-/sdcard/android/layout_tests/fast/clip/005.html
-/sdcard/android/layout_tests/fast/clip/014.html
-/sdcard/android/layout_tests/fast/clip/006.html
-/sdcard/android/layout_tests/fast/clip/015.html
-/sdcard/android/layout_tests/fast/clip/016.html
-/sdcard/android/layout_tests/fast/clip/007.html
-/sdcard/android/layout_tests/fast/clip/008.html
-/sdcard/android/layout_tests/fast/clip/017.html
-/sdcard/android/layout_tests/fast/clip/009.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/001.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/002.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/003.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/004.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/equal-precedence-resolution.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/rtl-border-collapsing.html
-/sdcard/android/layout_tests/fast/table/border-collapsing/border-collapsing-head-foot.html
-/sdcard/android/layout_tests/fast/table/fixed-nested.html
-/sdcard/android/layout_tests/fast/table/frame-and-rules.html
-/sdcard/android/layout_tests/fast/table/empty-table-percent-height.html
-/sdcard/android/layout_tests/fast/table/100-percent-cell-width.html
-/sdcard/android/layout_tests/fast/table/stale-grid-crash.html
-/sdcard/android/layout_tests/fast/table/div-as-col-span.html
-/sdcard/android/layout_tests/fast/table/nobr.html
-/sdcard/android/layout_tests/fast/table/012.html
-/sdcard/android/layout_tests/fast/table/040.html
-/sdcard/android/layout_tests/fast/table/growCellForImageQuirk.html
-/sdcard/android/layout_tests/fast/table/024.html
-/sdcard/android/layout_tests/fast/table/cell-pref-width-invalidation.html
-/sdcard/android/layout_tests/fast/table/fixed-granular-cols.html
-/sdcard/android/layout_tests/fast/table/008.html
-/sdcard/android/layout_tests/fast/table/036.html
-/sdcard/android/layout_tests/fast/table/nested-percent-height-table.html
-/sdcard/android/layout_tests/fast/table/rules-attr-dynchange1.html
-/sdcard/android/layout_tests/fast/table/wide-column.html
-/sdcard/android/layout_tests/fast/table/fixed-with-auto-with-colspan.html
-/sdcard/android/layout_tests/fast/table/percent-heights.html
-/sdcard/android/layout_tests/fast/table/021.html
-/sdcard/android/layout_tests/fast/table/colspanMinWidth.html
-/sdcard/android/layout_tests/fast/table/005.html
-/sdcard/android/layout_tests/fast/table/033.html
-/sdcard/android/layout_tests/fast/table/floatingTablePaintBackground.html
-/sdcard/android/layout_tests/fast/table/017.html
-/sdcard/android/layout_tests/fast/table/029.html
-/sdcard/android/layout_tests/fast/table/cell-absolute-child.html
-/sdcard/android/layout_tests/fast/table/click-near-anonymous-table.html
-/sdcard/android/layout_tests/fast/table/auto-with-percent-height.html
-/sdcard/android/layout_tests/fast/table/insert-before-anonymous-ancestors.html
-/sdcard/android/layout_tests/fast/table/append-cells2.html
-/sdcard/android/layout_tests/fast/table/unused-percent-heights.html
-/sdcard/android/layout_tests/fast/table/max-width-integer-overflow.html
-/sdcard/android/layout_tests/fast/table/vertical-align-baseline-readjust.html
-/sdcard/android/layout_tests/fast/table/empty-row-crash.html
-/sdcard/android/layout_tests/fast/table/002.html
-/sdcard/android/layout_tests/fast/table/030.html
-/sdcard/android/layout_tests/fast/table/cell-width-auto.html
-/sdcard/android/layout_tests/fast/table/014.html
-/sdcard/android/layout_tests/fast/table/037.xml
-/sdcard/android/layout_tests/fast/table/large-width.html
-/sdcard/android/layout_tests/fast/table/026.html
-/sdcard/android/layout_tests/fast/table/unbreakable-images-quirk.html
-/sdcard/android/layout_tests/fast/table/038.html
-/sdcard/android/layout_tests/fast/table/dynamic-cellpadding.html
-/sdcard/android/layout_tests/fast/table/generated-caption.html
-/sdcard/android/layout_tests/fast/table/empty-cells.html
-/sdcard/android/layout_tests/fast/table/add-before-anonymous-child.html
-/sdcard/android/layout_tests/fast/table/011.html
-/sdcard/android/layout_tests/fast/table/table-display-types-strict.html
-/sdcard/android/layout_tests/fast/table/023.html
-/sdcard/android/layout_tests/fast/table/007.html
-/sdcard/android/layout_tests/fast/table/cellindex.html
-/sdcard/android/layout_tests/fast/table/035.html
-/sdcard/android/layout_tests/fast/table/colgroup-spanning-groups-rules.html
-/sdcard/android/layout_tests/fast/table/insert-row-before-form.html
-/sdcard/android/layout_tests/fast/table/rowspan-paint-order.html
-/sdcard/android/layout_tests/fast/table/rtl-cell-display-none-assert.html
-/sdcard/android/layout_tests/fast/table/insert-cell-before-form.html
-/sdcard/android/layout_tests/fast/table/replaced-percent-height.html
-/sdcard/android/layout_tests/fast/table/text-field-baseline.html
-/sdcard/android/layout_tests/fast/table/table-display-types.html
-/sdcard/android/layout_tests/fast/table/table-hspace-align-center.html
-/sdcard/android/layout_tests/fast/table/caption-relayout.html
-/sdcard/android/layout_tests/fast/table/020.html
-/sdcard/android/layout_tests/fast/table/fixed-table-non-cell-in-row.html
-/sdcard/android/layout_tests/fast/table/004.html
-/sdcard/android/layout_tests/fast/table/032.html
-/sdcard/android/layout_tests/fast/table/row-height-recalc.html
-/sdcard/android/layout_tests/fast/table/016.html
-/sdcard/android/layout_tests/fast/table/absolute-table-at-bottom.html
-/sdcard/android/layout_tests/fast/table/028.html
-/sdcard/android/layout_tests/fast/table/spanOverlapRepaint.html
-/sdcard/android/layout_tests/fast/table/invisible-cell-background.html
-/sdcard/android/layout_tests/fast/table/vertical-align-baseline.html
-/sdcard/android/layout_tests/fast/table/cell-coalescing.html
-/sdcard/android/layout_tests/fast/table/wide-colspan.html
-/sdcard/android/layout_tests/fast/table/rowindex.html
-/sdcard/android/layout_tests/fast/table/001.html
-/sdcard/android/layout_tests/fast/table/remove-td-display-none.html
-/sdcard/android/layout_tests/fast/table/013.html
-/sdcard/android/layout_tests/fast/table/041.html
-/sdcard/android/layout_tests/fast/table/colgroup-preceded-by-caption.html
-/sdcard/android/layout_tests/fast/table/025.html
-/sdcard/android/layout_tests/fast/table/giantCellspacing.html
-/sdcard/android/layout_tests/fast/table/009.html
-/sdcard/android/layout_tests/fast/table/edge-offsets.html
-/sdcard/android/layout_tests/fast/table/giantRowspan.html
-/sdcard/android/layout_tests/fast/table/inline-form-assert.html
-/sdcard/android/layout_tests/fast/table/overflowHidden.html
-/sdcard/android/layout_tests/fast/table/rules-attr-dynchange2.html
-/sdcard/android/layout_tests/fast/table/height-percent-test.html
-/sdcard/android/layout_tests/fast/table/multiple-percent-height-rows.html
-/sdcard/android/layout_tests/fast/table/giantRowspan2.html
-/sdcard/android/layout_tests/fast/table/010.html
-/sdcard/android/layout_tests/fast/table/tableInsideCaption.html
-/sdcard/android/layout_tests/fast/table/022.html
-/sdcard/android/layout_tests/fast/table/006.html
-/sdcard/android/layout_tests/fast/table/034.html
-/sdcard/android/layout_tests/fast/table/append-cells.html
-/sdcard/android/layout_tests/fast/table/018.html
-/sdcard/android/layout_tests/fast/table/percent-widths-stretch.html
-/sdcard/android/layout_tests/fast/table/prepend-in-anonymous-table.html
-/sdcard/android/layout_tests/fast/table/floating-th.html
-/sdcard/android/layout_tests/fast/table/empty-section-crash.html
-/sdcard/android/layout_tests/fast/table/form-with-table-style.html
-/sdcard/android/layout_tests/fast/table/003.html
-/sdcard/android/layout_tests/fast/table/031.html
-/sdcard/android/layout_tests/fast/table/015.html
-/sdcard/android/layout_tests/fast/table/027.html
-/sdcard/android/layout_tests/fast/table/039.html
-/sdcard/android/layout_tests/fast/css/counters/invalidate-cached-counter-node.html
-/sdcard/android/layout_tests/fast/css/counters/counter-text-security.html
-/sdcard/android/layout_tests/fast/css/counters/counter-text-transform.html
-/sdcard/android/layout_tests/fast/css/variables/multiple-term-test.html
-/sdcard/android/layout_tests/fast/css/variables/colors-test.html
-/sdcard/android/layout_tests/fast/css/variables/font-test.html
-/sdcard/android/layout_tests/fast/css/variables/multiple-blocks-test.html
-/sdcard/android/layout_tests/fast/css/variables/misplaced-variables-test.html
-/sdcard/android/layout_tests/fast/css/variables/invalid-variable-test.html
-/sdcard/android/layout_tests/fast/css/variables/misplaced-import-test.html
-/sdcard/android/layout_tests/fast/css/variables/import-test.html
-/sdcard/android/layout_tests/fast/css/variables/inline-style-test.html
-/sdcard/android/layout_tests/fast/css/variables/declaration-block-test.html
-/sdcard/android/layout_tests/fast/css/variables/margin-test.html
-/sdcard/android/layout_tests/fast/css/variables/set-variable-test.html
-/sdcard/android/layout_tests/fast/css/variables/override-test.html
-/sdcard/android/layout_tests/fast/css/variables/remove-variable-test.html
-/sdcard/android/layout_tests/fast/css/variables/variable-iteration-test.html
-/sdcard/android/layout_tests/fast/css/variables/image-test.html
-/sdcard/android/layout_tests/fast/css/variables/block-cycle-test.html
-/sdcard/android/layout_tests/fast/css/variables/shorthand-test.html
-/sdcard/android/layout_tests/fast/css/variables/print-test.html
-/sdcard/android/layout_tests/fast/css/namespaces/001.xml
-/sdcard/android/layout_tests/fast/css/namespaces/002.xml
-/sdcard/android/layout_tests/fast/css/namespaces/003.xml
-/sdcard/android/layout_tests/fast/css/namespaces/004.xml
-/sdcard/android/layout_tests/fast/css/namespaces/005.xml
-/sdcard/android/layout_tests/fast/css/namespaces/006.xml
-/sdcard/android/layout_tests/fast/css/namespaces/007.xml
-/sdcard/android/layout_tests/fast/css/font-face-in-media-rule.html
-/sdcard/android/layout_tests/fast/css/font-face-default-font.html
-/sdcard/android/layout_tests/fast/css/first-letter-float-after-float.html
-/sdcard/android/layout_tests/fast/css/invalidation-errors-2.html
-/sdcard/android/layout_tests/fast/css/line-height-negative.html
-/sdcard/android/layout_tests/fast/css/only-child-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/008.html
-/sdcard/android/layout_tests/fast/css/first-of-type-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/ZeroOpacityLayers2.html
-/sdcard/android/layout_tests/fast/css/target-fragment-match.html
-/sdcard/android/layout_tests/fast/css/attribute-selector-dynamic.xml
-/sdcard/android/layout_tests/fast/css/zoom-font-size.html
-/sdcard/android/layout_tests/fast/css/live-cssrules.html
-/sdcard/android/layout_tests/fast/css/005.html
-/sdcard/android/layout_tests/fast/css/first-letter-hover.html
-/sdcard/android/layout_tests/fast/css/clip-zooming.html
-/sdcard/android/layout_tests/fast/css/color-quirk.html
-/sdcard/android/layout_tests/fast/css/resize-corner-tracking-transformed.html
-/sdcard/android/layout_tests/fast/css/selector-set-attribute.html
-/sdcard/android/layout_tests/fast/css/attribute-selector-empty-value.html
-/sdcard/android/layout_tests/fast/css/line-height-overflow.html
-/sdcard/android/layout_tests/fast/css/002.html
-/sdcard/android/layout_tests/fast/css/empty-generated-content.html
-/sdcard/android/layout_tests/fast/css/border-radius-outline-offset.html
-/sdcard/android/layout_tests/fast/css/background-image-with-baseurl.html
-/sdcard/android/layout_tests/fast/css/hsla-color.html
-/sdcard/android/layout_tests/fast/css/first-letter-skip-out-of-flow.html
-/sdcard/android/layout_tests/fast/css/font-face-multiple-remote-sources.html
-/sdcard/android/layout_tests/fast/css/pseudo-cache-stale.html
-/sdcard/android/layout_tests/fast/css/hover-subselector.html
-/sdcard/android/layout_tests/fast/css/margin-bottom-form-element-strict.html
-/sdcard/android/layout_tests/fast/css/shadow-multiple.html
-/sdcard/android/layout_tests/fast/css/import_with_baseurl.html
-/sdcard/android/layout_tests/fast/css/list-outline.html
-/sdcard/android/layout_tests/fast/css/apple-prefix.html
-/sdcard/android/layout_tests/fast/css/line-height.html
-/sdcard/android/layout_tests/fast/css/first-letter-visibility.html
-/sdcard/android/layout_tests/fast/css/acid2.html
-/sdcard/android/layout_tests/fast/css/font_property_normal.html
-/sdcard/android/layout_tests/fast/css/css-imports.html
-/sdcard/android/layout_tests/fast/css/last-of-type-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/last-child-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/visibility-hit-test.html
-/sdcard/android/layout_tests/fast/css/absolute-poition-in-rtl-parent.html
-/sdcard/android/layout_tests/fast/css/content-dynamic.html
-/sdcard/android/layout_tests/fast/css/acid2-pixel.html
-/sdcard/android/layout_tests/fast/css/transition-color-unspecified.html
-/sdcard/android/layout_tests/fast/css/table-text-align-strict.html
-/sdcard/android/layout_tests/fast/css/transform-default-parameter.html
-/sdcard/android/layout_tests/fast/css/text-overflow-ellipsis-bidi.html
-/sdcard/android/layout_tests/fast/css/contentImage.html
-/sdcard/android/layout_tests/fast/css/value-list-out-of-bounds-crash.html
-/sdcard/android/layout_tests/fast/css/color-strict.html
-/sdcard/android/layout_tests/fast/css/ignore-text-zoom.html
-/sdcard/android/layout_tests/fast/css/max-height-none.html
-/sdcard/android/layout_tests/fast/css/invalidation-errors-3.html
-/sdcard/android/layout_tests/fast/css/empty-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/begin-end-contain-selector-empty-value.html
-/sdcard/android/layout_tests/fast/css/find-next-layer.html
-/sdcard/android/layout_tests/fast/css/text-overflow-ellipsis.html
-/sdcard/android/layout_tests/fast/css/contentDiv.html
-/sdcard/android/layout_tests/fast/css/invalid-pseudo-classes.html
-/sdcard/android/layout_tests/fast/css/disabled-author-styles.html
-/sdcard/android/layout_tests/fast/css/text-security.html
-/sdcard/android/layout_tests/fast/css/font-weight-1.html
-/sdcard/android/layout_tests/fast/css/nested-floating-relative-position-percentages.html
-/sdcard/android/layout_tests/fast/css/margin-bottom-form-element-quirk.html
-/sdcard/android/layout_tests/fast/css/font-shorthand-weight-only.html
-/sdcard/android/layout_tests/fast/css/006.html
-/sdcard/android/layout_tests/fast/css/fieldset-display-row.html
-/sdcard/android/layout_tests/fast/css/border-height.html
-/sdcard/android/layout_tests/fast/css/css2-system-fonts.html
-/sdcard/android/layout_tests/fast/css/imageTileOpacity.html
-/sdcard/android/layout_tests/fast/css/font-face-remote.html
-/sdcard/android/layout_tests/fast/css/003.html
-/sdcard/android/layout_tests/fast/css/error-in-last-decl.html
-/sdcard/android/layout_tests/fast/css/zoom-property-parsing.html
-/sdcard/android/layout_tests/fast/css/style-outside-head.html
-/sdcard/android/layout_tests/fast/css/positioned-overflow-scroll.html
-/sdcard/android/layout_tests/fast/css/first-letter-capitalized.html
-/sdcard/android/layout_tests/fast/css/font-face-locally-installed.html
-/sdcard/android/layout_tests/fast/css/word-space-extra.html
-/sdcard/android/layout_tests/fast/css/first-letter-float.html
-/sdcard/android/layout_tests/fast/css/simple-selector-chain-parsing.html
-/sdcard/android/layout_tests/fast/css/xml-stylesheet-pi-not-in-prolog.xml
-/sdcard/android/layout_tests/fast/css/continuationCrash.html
-/sdcard/android/layout_tests/fast/css/vertical-align-lengths.html
-/sdcard/android/layout_tests/fast/css/first-child-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/percent-top-value-with-relative-position.html
-/sdcard/android/layout_tests/fast/css/beforeSelectorOnCodeElement.html
-/sdcard/android/layout_tests/fast/css/getFloatValueForUnit.html
-/sdcard/android/layout_tests/fast/css/first-letter-detach.html
-/sdcard/android/layout_tests/fast/css/line-height-font-order.html
-/sdcard/android/layout_tests/fast/css/text-overflow-ellipsis-strict.html
-/sdcard/android/layout_tests/fast/css/font-face-unicode-range.html
-/sdcard/android/layout_tests/fast/css/layerZOrderCrash.html
-/sdcard/android/layout_tests/fast/css/compare-content-style.html
-/sdcard/android/layout_tests/fast/css/import-rule-regression-11590.html
-/sdcard/android/layout_tests/fast/css/last-child-style-sharing.html
-/sdcard/android/layout_tests/fast/css/css3-modsel-22.html
-/sdcard/android/layout_tests/fast/css/ex-after-font-variant.html
-/sdcard/android/layout_tests/fast/css/quirk-orphaned-units.html
-/sdcard/android/layout_tests/fast/css/outline-auto-location.html
-/sdcard/android/layout_tests/fast/css/margin-top-bottom-dynamic.html
-/sdcard/android/layout_tests/fast/css/font-face-descriptor-multiple-values.html
-/sdcard/android/layout_tests/fast/css/empty-body-test.html
-/sdcard/android/layout_tests/fast/css/007.html
-/sdcard/android/layout_tests/fast/css/link-outside-head.html
-/sdcard/android/layout_tests/fast/css/font-size-negative.html
-/sdcard/android/layout_tests/fast/css/rem-units-on-root.html
-/sdcard/android/layout_tests/fast/css/position-negative-top-margin.html
-/sdcard/android/layout_tests/fast/css/ZeroOpacityLayers.html
-/sdcard/android/layout_tests/fast/css/only-of-type-pseudo-class.html
-/sdcard/android/layout_tests/fast/css/004.html
-/sdcard/android/layout_tests/fast/css/rtl-ordering.html
-/sdcard/android/layout_tests/fast/css/affected-by-hover-after-style-change.html
-/sdcard/android/layout_tests/fast/css/resize-corner-tracking.html
-/sdcard/android/layout_tests/fast/css/invalidation-errors.html
-/sdcard/android/layout_tests/fast/css/background-shorthand-invalid-url.html
-/sdcard/android/layout_tests/fast/css/MarqueeLayoutTest.html
-/sdcard/android/layout_tests/fast/css/textCapitalizeEdgeCases.html
-/sdcard/android/layout_tests/fast/css/001.html
-/sdcard/android/layout_tests/fast/css/hsl-color.html
-/sdcard/android/layout_tests/fast/css/font-face-implicit-local-font.html
-/sdcard/android/layout_tests/fast/css/first-letter-recalculation.html
-/sdcard/android/layout_tests/fast/css/rem-dynamic-scaling.html
-/sdcard/android/layout_tests/fast/css/inline-properties-important.html
-/sdcard/android/layout_tests/fast/css/dynamic-sibling-selector.html
-/sdcard/android/layout_tests/fast/css/table-text-align-quirk.html
-/sdcard/android/layout_tests/fast/css/nth-child-dynamic.html
-/sdcard/android/layout_tests/fast/css/outline-auto-empty-rects.html
-/sdcard/android/layout_tests/fast/css/font-face-multiple-faces.html
-/sdcard/android/layout_tests/fast/css/rgb-float.html
-/sdcard/android/layout_tests/fast/css/pendingStylesheetFontSize.html
-/sdcard/android/layout_tests/fast/css/contentDivWithChildren.html
-/sdcard/android/layout_tests/fast/css/universal-hover-quirk.html
-/sdcard/android/layout_tests/fast/css/css3-nth-child.html
-/sdcard/android/layout_tests/fast/css/style-parsed-outside-head.html
-/sdcard/android/layout_tests/fast/css/percentage-non-integer.html
-/sdcard/android/layout_tests/fast/css/nested-layers-with-hover.html
-/sdcard/android/layout_tests/fast/css/negative-nth-child.html
-/sdcard/android/layout_tests/fast/box-sizing/panels-one.html
-/sdcard/android/layout_tests/fast/box-sizing/percentage-height.html
-/sdcard/android/layout_tests/fast/box-sizing/box-sizing.html
-/sdcard/android/layout_tests/fast/box-sizing/panels-two.html
-/sdcard/android/layout_tests/fast/block/basic/minheight.html
-/sdcard/android/layout_tests/fast/block/basic/min-pref-width-nowrap-floats.html
-/sdcard/android/layout_tests/fast/block/basic/fieldset-stretch-to-legend.html
-/sdcard/android/layout_tests/fast/block/basic/white-space-pre-wraps.html
-/sdcard/android/layout_tests/fast/block/basic/adding-near-anonymous-block.html
-/sdcard/android/layout_tests/fast/block/basic/quirk-percent-height-grandchild.html
-/sdcard/android/layout_tests/fast/block/basic/001.html
-/sdcard/android/layout_tests/fast/block/basic/010.html
-/sdcard/android/layout_tests/fast/block/basic/quirk-height.html
-/sdcard/android/layout_tests/fast/block/basic/020.html
-/sdcard/android/layout_tests/fast/block/basic/002.html
-/sdcard/android/layout_tests/fast/block/basic/011.html
-/sdcard/android/layout_tests/fast/block/basic/text-indent-rtl.html
-/sdcard/android/layout_tests/fast/block/basic/021.html
-/sdcard/android/layout_tests/fast/block/basic/003.html
-/sdcard/android/layout_tests/fast/block/basic/012.html
-/sdcard/android/layout_tests/fast/block/basic/013.html
-/sdcard/android/layout_tests/fast/block/basic/004.html
-/sdcard/android/layout_tests/fast/block/basic/014.html
-/sdcard/android/layout_tests/fast/block/basic/005.html
-/sdcard/android/layout_tests/fast/block/basic/015.html
-/sdcard/android/layout_tests/fast/block/basic/006.html
-/sdcard/android/layout_tests/fast/block/basic/016.html
-/sdcard/android/layout_tests/fast/block/basic/007.html
-/sdcard/android/layout_tests/fast/block/basic/008.html
-/sdcard/android/layout_tests/fast/block/basic/009.html
-/sdcard/android/layout_tests/fast/block/basic/018.html
-/sdcard/android/layout_tests/fast/block/basic/019.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/001.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/002.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/003.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/004.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/005.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/006.html
-/sdcard/android/layout_tests/fast/block/positioning/auto/007.html
-/sdcard/android/layout_tests/fast/block/positioning/059.html
-/sdcard/android/layout_tests/fast/block/positioning/negative-rel-position.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-short-rtl.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-short-ltr.html
-/sdcard/android/layout_tests/fast/block/positioning/fixed-positioning-scrollbar-bug.html
-/sdcard/android/layout_tests/fast/block/positioning/relative-overflow-replaced-float.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-positioned-overconstrained.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-rtl-2.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-ltr-2.html
-/sdcard/android/layout_tests/fast/block/positioning/020.html
-/sdcard/android/layout_tests/fast/block/positioning/012.html
-/sdcard/android/layout_tests/fast/block/positioning/004.html
-/sdcard/android/layout_tests/fast/block/positioning/040.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-position-direction-strict.html
-/sdcard/android/layout_tests/fast/block/positioning/032.html
-/sdcard/android/layout_tests/fast/block/positioning/060.html
-/sdcard/android/layout_tests/fast/block/positioning/024.html
-/sdcard/android/layout_tests/fast/block/positioning/052.html
-/sdcard/android/layout_tests/fast/block/positioning/016.html
-/sdcard/android/layout_tests/fast/block/positioning/044.html
-/sdcard/android/layout_tests/fast/block/positioning/008.html
-/sdcard/android/layout_tests/fast/block/positioning/036.html
-/sdcard/android/layout_tests/fast/block/positioning/028.html
-/sdcard/android/layout_tests/fast/block/positioning/056.html
-/sdcard/android/layout_tests/fast/block/positioning/048.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-position-direction-quirk.html
-/sdcard/android/layout_tests/fast/block/positioning/replaced-inside-fixed-top-bottom.html
-/sdcard/android/layout_tests/fast/block/positioning/pref-width-change.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-ltr-3.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-ltr.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-rtl-3.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-rtl.html
-/sdcard/android/layout_tests/fast/block/positioning/001.html
-/sdcard/android/layout_tests/fast/block/positioning/021.html
-/sdcard/android/layout_tests/fast/block/positioning/013.html
-/sdcard/android/layout_tests/fast/block/positioning/relative-overflow-block.html
-/sdcard/android/layout_tests/fast/block/positioning/005.html
-/sdcard/android/layout_tests/fast/block/positioning/041.html
-/sdcard/android/layout_tests/fast/block/positioning/033.html
-/sdcard/android/layout_tests/fast/block/positioning/025.html
-/sdcard/android/layout_tests/fast/block/positioning/061.html
-/sdcard/android/layout_tests/fast/block/positioning/017.html
-/sdcard/android/layout_tests/fast/block/positioning/053.html
-/sdcard/android/layout_tests/fast/block/positioning/009.html
-/sdcard/android/layout_tests/fast/block/positioning/045.html
-/sdcard/android/layout_tests/fast/block/positioning/037.html
-/sdcard/android/layout_tests/fast/block/positioning/029.html
-/sdcard/android/layout_tests/fast/block/positioning/057.html
-/sdcard/android/layout_tests/fast/block/positioning/049.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-with-html-border-quirks.html
-/sdcard/android/layout_tests/fast/block/positioning/leftmargin-topmargin.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-length-of-neg-666666.html
-/sdcard/android/layout_tests/fast/block/positioning/complex-percentage-height.html
-/sdcard/android/layout_tests/fast/block/positioning/auto-height-with-top-and-bottom.html
-/sdcard/android/layout_tests/fast/block/positioning/010.html
-/sdcard/android/layout_tests/fast/block/positioning/002.html
-/sdcard/android/layout_tests/fast/block/positioning/030.html
-/sdcard/android/layout_tests/fast/block/positioning/relayout-on-position-change.html
-/sdcard/android/layout_tests/fast/block/positioning/022.html
-/sdcard/android/layout_tests/fast/block/positioning/padding-percent.html
-/sdcard/android/layout_tests/fast/block/positioning/014.html
-/sdcard/android/layout_tests/fast/block/positioning/050.html
-/sdcard/android/layout_tests/fast/block/positioning/042.html
-/sdcard/android/layout_tests/fast/block/positioning/006.html
-/sdcard/android/layout_tests/fast/block/positioning/034.html
-/sdcard/android/layout_tests/fast/block/positioning/offsetLeft-offsetTop-borders.html
-/sdcard/android/layout_tests/fast/block/positioning/062.html
-/sdcard/android/layout_tests/fast/block/positioning/026.html
-/sdcard/android/layout_tests/fast/block/positioning/054.html
-/sdcard/android/layout_tests/fast/block/positioning/018.html
-/sdcard/android/layout_tests/fast/block/positioning/046.html
-/sdcard/android/layout_tests/fast/block/positioning/abs-inside-inline-rel.html
-/sdcard/android/layout_tests/fast/block/positioning/038.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-with-html-border-strict.html
-/sdcard/android/layout_tests/fast/block/positioning/058.html
-/sdcard/android/layout_tests/fast/block/positioning/negative-right-pos.html
-/sdcard/android/layout_tests/fast/block/positioning/relative-overconstrained.html
-/sdcard/android/layout_tests/fast/block/positioning/child-of-absolute-with-auto-height.html
-/sdcard/android/layout_tests/fast/block/positioning/relative-overflow-replaced.html
-/sdcard/android/layout_tests/fast/block/positioning/height-change.html
-/sdcard/android/layout_tests/fast/block/positioning/window-height-change.html
-/sdcard/android/layout_tests/fast/block/positioning/011.html
-/sdcard/android/layout_tests/fast/block/positioning/003.html
-/sdcard/android/layout_tests/fast/block/positioning/move-with-auto-width.html
-/sdcard/android/layout_tests/fast/block/positioning/031.html
-/sdcard/android/layout_tests/fast/block/positioning/023.html
-/sdcard/android/layout_tests/fast/block/positioning/051.html
-/sdcard/android/layout_tests/fast/block/positioning/015.html
-/sdcard/android/layout_tests/fast/block/positioning/043.html
-/sdcard/android/layout_tests/fast/block/positioning/007.html
-/sdcard/android/layout_tests/fast/block/positioning/035.html
-/sdcard/android/layout_tests/fast/block/positioning/027.html
-/sdcard/android/layout_tests/fast/block/positioning/055.html
-/sdcard/android/layout_tests/fast/block/positioning/019.html
-/sdcard/android/layout_tests/fast/block/positioning/047.html
-/sdcard/android/layout_tests/fast/block/positioning/039.html
-/sdcard/android/layout_tests/fast/block/positioning/inline-block-relposition.html
-/sdcard/android/layout_tests/fast/block/float/vertical-move-relayout.html
-/sdcard/android/layout_tests/fast/block/float/overlapping-floats-with-overflow-hidden.html
-/sdcard/android/layout_tests/fast/block/float/tableshifting.html
-/sdcard/android/layout_tests/fast/block/float/table-relayout.html
-/sdcard/android/layout_tests/fast/block/float/nested-clearance.html
-/sdcard/android/layout_tests/fast/block/float/br-with-clear-2.html
-/sdcard/android/layout_tests/fast/block/float/020.html
-/sdcard/android/layout_tests/fast/block/float/012.html
-/sdcard/android/layout_tests/fast/block/float/004.html
-/sdcard/android/layout_tests/fast/block/float/032.html
-/sdcard/android/layout_tests/fast/block/float/024.html
-/sdcard/android/layout_tests/fast/block/float/016.html
-/sdcard/android/layout_tests/fast/block/float/008.html
-/sdcard/android/layout_tests/fast/block/float/028.html
-/sdcard/android/layout_tests/fast/block/float/shrink-to-fit-width.html
-/sdcard/android/layout_tests/fast/block/float/clamped-right-float.html
-/sdcard/android/layout_tests/fast/block/float/independent-align-positioning.html
-/sdcard/android/layout_tests/fast/block/float/float-on-zero-height-line.html
-/sdcard/android/layout_tests/fast/block/float/nowrap-clear-min-width.html
-/sdcard/android/layout_tests/fast/block/float/overhanging-after-height-decrease-offsets.html
-/sdcard/android/layout_tests/fast/block/float/001.html
-/sdcard/android/layout_tests/fast/block/float/021.html
-/sdcard/android/layout_tests/fast/block/float/013.html
-/sdcard/android/layout_tests/fast/block/float/nopaint-after-layer-destruction2.html
-/sdcard/android/layout_tests/fast/block/float/005.html
-/sdcard/android/layout_tests/fast/block/float/033.html
-/sdcard/android/layout_tests/fast/block/float/025.html
-/sdcard/android/layout_tests/fast/block/float/017.html
-/sdcard/android/layout_tests/fast/block/float/009.html
-/sdcard/android/layout_tests/fast/block/float/float-in-float-hit-testing.html
-/sdcard/android/layout_tests/fast/block/float/029.html
-/sdcard/android/layout_tests/fast/block/float/4145535Crash.html
-/sdcard/android/layout_tests/fast/block/float/editable-text-overlapping-float.html
-/sdcard/android/layout_tests/fast/block/float/nestedAnonymousBlocks.html
-/sdcard/android/layout_tests/fast/block/float/intruding-painted-twice.html
-/sdcard/android/layout_tests/fast/block/float/010.html
-/sdcard/android/layout_tests/fast/block/float/002.html
-/sdcard/android/layout_tests/fast/block/float/dynamic-unfloat-pref-width.html
-/sdcard/android/layout_tests/fast/block/float/marquee-shrink-to-avoid-floats.html
-/sdcard/android/layout_tests/fast/block/float/030.html
-/sdcard/android/layout_tests/fast/block/float/022.html
-/sdcard/android/layout_tests/fast/block/float/014.html
-/sdcard/android/layout_tests/fast/block/float/006.html
-/sdcard/android/layout_tests/fast/block/float/relative-painted-twice.html
-/sdcard/android/layout_tests/fast/block/float/034.html
-/sdcard/android/layout_tests/fast/block/float/026.html
-/sdcard/android/layout_tests/fast/block/float/018.html
-/sdcard/android/layout_tests/fast/block/float/width-update-after-clear.html
-/sdcard/android/layout_tests/fast/block/float/nopaint-after-layer-destruction.html
-/sdcard/android/layout_tests/fast/block/float/float-in-float-painting.html
-/sdcard/android/layout_tests/fast/block/float/overhanging-after-height-decrease.html
-/sdcard/android/layout_tests/fast/block/float/float-avoidance.html
-/sdcard/android/layout_tests/fast/block/float/narrow-after-wide.html
-/sdcard/android/layout_tests/fast/block/float/multiple-float-positioning.html
-/sdcard/android/layout_tests/fast/block/float/br-with-clear.html
-/sdcard/android/layout_tests/fast/block/float/011.html
-/sdcard/android/layout_tests/fast/block/float/negative-margin-clear.html
-/sdcard/android/layout_tests/fast/block/float/003.html
-/sdcard/android/layout_tests/fast/block/float/031.html
-/sdcard/android/layout_tests/fast/block/float/023.html
-/sdcard/android/layout_tests/fast/block/float/015.html
-/sdcard/android/layout_tests/fast/block/float/007.html
-/sdcard/android/layout_tests/fast/block/float/035.html
-/sdcard/android/layout_tests/fast/block/float/027.html
-/sdcard/android/layout_tests/fast/block/float/019.html
-/sdcard/android/layout_tests/fast/block/float/nestedAnonymousBlocks2.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/059.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/empty-clear-blocks.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/010.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/negative-margins.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/002.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/020.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/101.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/030.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/012.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/040.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/022.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/004.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/103.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/032.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/006.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/042.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/016.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/034.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/062.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/044.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/026.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/018.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/028.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/056.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/038.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/058.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/100.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/001.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/011.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/102.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/021.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/003.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/031.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/005.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/041.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/104.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/033.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/015.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/025.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/043.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/035.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/017.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/027.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/045.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/063.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/037.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/019.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/055.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/029.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/039.html
-/sdcard/android/layout_tests/fast/block/margin-collapse/057.html
-/sdcard/android/layout_tests/fast/runin/generated.html
-/sdcard/android/layout_tests/fast/runin/001.html
-/sdcard/android/layout_tests/fast/runin/002.html
-/sdcard/android/layout_tests/fast/parser/comments.html
-/sdcard/android/layout_tests/fast/parser/title-error-test.html
-/sdcard/android/layout_tests/fast/parser/entity-comment-in-textarea.html
-/sdcard/android/layout_tests/fast/parser/parseCommentsInTitles.html
-/sdcard/android/layout_tests/fast/parser/open-comment-in-style.html
-/sdcard/android/layout_tests/fast/parser/document-write-option.html
-/sdcard/android/layout_tests/fast/parser/comment-in-textarea.html
-/sdcard/android/layout_tests/fast/parser/fonts.html
-/sdcard/android/layout_tests/fast/parser/comment-in-style.html
-/sdcard/android/layout_tests/fast/parser/comment-in-script.html
-/sdcard/android/layout_tests/fast/parser/broken-comments-vs-parsing-mode.html
-/sdcard/android/layout_tests/fast/parser/entity-comment-in-style.html
-/sdcard/android/layout_tests/fast/parser/xhtml-alternate-entities.xml
-/sdcard/android/layout_tests/fast/parser/nofoo-tags-inside-paragraph.html
-/sdcard/android/layout_tests/fast/parser/bad-xml-slash.html
-/sdcard/android/layout_tests/fast/parser/001.html
-/sdcard/android/layout_tests/fast/parser/open-comment-in-textarea.html
-/sdcard/android/layout_tests/fast/parser/tabs-in-scripts.html
-/sdcard/android/layout_tests/fast/parser/remove-block-in-residual-style.html
-/sdcard/android/layout_tests/fast/parser/style-script-head-test.html
-/sdcard/android/layout_tests/fast/layers/zindex-ridonkulous.html
-/sdcard/android/layout_tests/fast/layers/self-painting-outline.html
-/sdcard/android/layout_tests/fast/layers/positioned-inside-root-with-margins.html
-/sdcard/android/layout_tests/fast/layers/video-layer.html
-/sdcard/android/layout_tests/fast/layers/inline-dirty-z-order-lists.html
-/sdcard/android/layout_tests/fast/layers/layer-visibility-sublayer.html
-/sdcard/android/layout_tests/fast/layers/opacity-outline.html
-/sdcard/android/layout_tests/fast/layers/add-layer-with-nested-stacking.html
-/sdcard/android/layout_tests/fast/layers/layer-content-visibility-change.html
-/sdcard/android/layout_tests/fast/layers/normal-flow-hit-test.html
-/sdcard/android/layout_tests/fast/layers/remove-layer-with-nested-stacking.html
-/sdcard/android/layout_tests/fast/layers/layer-visibility.html
-/sdcard/android/layout_tests/fast/layers/zindex-inherit.html
-/sdcard/android/layout_tests/fast/layers/overflow-scroll-auto-switch.html
-/sdcard/android/layout_tests/fast/layers/opacity-transforms.html
-/sdcard/android/layout_tests/fast/layers/scroll-rect-to-visible.html
-/sdcard/android/layout_tests/fast/layers/opacity-stacking.html
-/sdcard/android/layout_tests/fast/layers/remove-only-this-layer-update.html
-/sdcard/android/layout_tests/fast/history/clicked-link-is-visited.html
-/sdcard/android/layout_tests/fast/backgrounds/repeat/mask-negative-offset-repeat.html
-/sdcard/android/layout_tests/fast/backgrounds/repeat/negative-offset-repeat.html
-/sdcard/android/layout_tests/fast/backgrounds/repeat/negative-offset-repeat-transformed.html
-/sdcard/android/layout_tests/fast/backgrounds/repeat/noRepeatCorrectClip.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize20.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize02.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize11.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize21.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize03.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize12.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize22.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize04.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize13.html
-/sdcard/android/layout_tests/fast/backgrounds/size/zero.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize05.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize14.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize06.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize15.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize07.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize16.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize08.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize17.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize09.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize18.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize19.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize10.html
-/sdcard/android/layout_tests/fast/backgrounds/size/backgroundSize01.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-2.html
-/sdcard/android/layout_tests/fast/backgrounds/background-origin-root-element.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-3.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-4.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-5.html
-/sdcard/android/layout_tests/fast/backgrounds/background-position-1.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-6.html
-/sdcard/android/layout_tests/fast/backgrounds/opacity-on-document-element.html
-/sdcard/android/layout_tests/fast/backgrounds/background-clip-text.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-mask.html
-/sdcard/android/layout_tests/fast/backgrounds/solid-color-context-restore.html
-/sdcard/android/layout_tests/fast/backgrounds/mask-composite.html
-/sdcard/android/layout_tests/fast/backgrounds/animated-svg-as-background.html
-/sdcard/android/layout_tests/fast/backgrounds/body-generated-image-propagated-to-root.html
-/sdcard/android/layout_tests/fast/backgrounds/001.html
-/sdcard/android/layout_tests/fast/backgrounds/animated-gif-as-background.html
-/sdcard/android/layout_tests/fast/backgrounds/background-position-rounding.html
-/sdcard/android/layout_tests/fast/backgrounds/bgCompositeCopy.html
-/sdcard/android/layout_tests/fast/backgrounds/background-inherit-color-bug.html
-/sdcard/android/layout_tests/fast/backgrounds/animated-svg-as-mask.html
-/sdcard/android/layout_tests/fast/backgrounds/svg-as-background-1.html
-/sdcard/android/layout_tests/fast/repaint/reflection-redraw.html
-/sdcard/android/layout_tests/fast/repaint/layer-full-repaint.html
-/sdcard/android/layout_tests/fast/repaint/subtree-root-clip.html
-/sdcard/android/layout_tests/fast/repaint/subtree-root-clip-3.html
-/sdcard/android/layout_tests/fast/repaint/layer-outline-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/transform-layout-repaint.html
-/sdcard/android/layout_tests/fast/repaint/float-new-in-block.html
-/sdcard/android/layout_tests/fast/repaint/list-marker-2.html
-/sdcard/android/layout_tests/fast/repaint/layer-hide-when-needs-layout.html
-/sdcard/android/layout_tests/fast/repaint/layer-outline.html
-/sdcard/android/layout_tests/fast/repaint/table-section-overflow.html
-/sdcard/android/layout_tests/fast/repaint/body-background-image.html
-/sdcard/android/layout_tests/fast/repaint/shadow-multiple-strict-vertical.html
-/sdcard/android/layout_tests/fast/repaint/inline-outline-repaint.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-4.html
-/sdcard/android/layout_tests/fast/repaint/change-transform.html
-/sdcard/android/layout_tests/fast/repaint/fixed.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-8.html
-/sdcard/android/layout_tests/fast/repaint/erase-overflow.html
-/sdcard/android/layout_tests/fast/repaint/outline-child-repaint.html
-/sdcard/android/layout_tests/fast/repaint/float-overflow.html
-/sdcard/android/layout_tests/fast/repaint/containing-block-position-change.html
-/sdcard/android/layout_tests/fast/repaint/text-selection-rect-in-overflow.html
-/sdcard/android/layout_tests/fast/repaint/flexible-box-overflow-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/table-cell-move.html
-/sdcard/android/layout_tests/fast/repaint/transform-absolute-child.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-10.html
-/sdcard/android/layout_tests/fast/repaint/opacity-change-on-overflow-float.html
-/sdcard/android/layout_tests/fast/repaint/float-move-during-layout.html
-/sdcard/android/layout_tests/fast/repaint/overflow-clip-subtree-layout.html
-/sdcard/android/layout_tests/fast/repaint/invisible-objects.html
-/sdcard/android/layout_tests/fast/repaint/shadow-multiple-strict-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/focus-layers.html
-/sdcard/android/layout_tests/fast/repaint/inline-color-change.html
-/sdcard/android/layout_tests/fast/repaint/table-col-background.html
-/sdcard/android/layout_tests/fast/repaint/selection-after-remove.html
-/sdcard/android/layout_tests/fast/repaint/dynamic-table-vertical-alignment-change.html
-/sdcard/android/layout_tests/fast/repaint/flexible-box-overflow.html
-/sdcard/android/layout_tests/fast/repaint/table-two-pass-layout-overpaint.html
-/sdcard/android/layout_tests/fast/repaint/overflow-into-content.html
-/sdcard/android/layout_tests/fast/repaint/shadow-multiple-vertical.html
-/sdcard/android/layout_tests/fast/repaint/border-repaint-glitch.html
-/sdcard/android/layout_tests/fast/repaint/continuation-after-outline.html
-/sdcard/android/layout_tests/fast/repaint/intermediate-layout-position.html
-/sdcard/android/layout_tests/fast/repaint/table-section-repaint.html
-/sdcard/android/layout_tests/fast/repaint/clipped-relative.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-1.html
-/sdcard/android/layout_tests/fast/repaint/backgroundSizeRepaint.html
-/sdcard/android/layout_tests/fast/repaint/box-shadow-dynamic.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-5.html
-/sdcard/android/layout_tests/fast/repaint/text-shadow-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/caret-outside-block.html
-/sdcard/android/layout_tests/fast/repaint/renderer-destruction-by-invalidateSelection-crash.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-9.html
-/sdcard/android/layout_tests/fast/repaint/float-in-new-block-with-layout-delta.html
-/sdcard/android/layout_tests/fast/repaint/transform-repaint-descendants.html
-/sdcard/android/layout_tests/fast/repaint/layout-state-relative.html
-/sdcard/android/layout_tests/fast/repaint/shadow-multiple-horizontal.html
-/sdcard/android/layout_tests/fast/repaint/border-fit-lines.html
-/sdcard/android/layout_tests/fast/repaint/repaint-resized-overflow.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-3509.html
-/sdcard/android/layout_tests/fast/repaint/inline-block-overflow.html
-/sdcard/android/layout_tests/fast/repaint/search-field-cancel.html
-/sdcard/android/layout_tests/fast/repaint/background-generated.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-6278.html
-/sdcard/android/layout_tests/fast/repaint/button-spurious-layout-hint.html
-/sdcard/android/layout_tests/fast/repaint/box-shadow-v.html
-/sdcard/android/layout_tests/fast/repaint/float-overflow-right.html
-/sdcard/android/layout_tests/fast/repaint/delete-into-nested-block.html
-/sdcard/android/layout_tests/fast/repaint/table-cell-collapsed-border.html
-/sdcard/android/layout_tests/fast/repaint/selection-after-delete.html
-/sdcard/android/layout_tests/fast/repaint/layout-state-only-positioned.html
-/sdcard/android/layout_tests/fast/repaint/lines-with-layout-delta.html
-/sdcard/android/layout_tests/fast/repaint/table-extra-bottom-grow.html
-/sdcard/android/layout_tests/fast/repaint/transform-relative-position.html
-/sdcard/android/layout_tests/fast/repaint/selection-gap-overflow-scroll.html
-/sdcard/android/layout_tests/fast/repaint/subtree-root-skipped.html
-/sdcard/android/layout_tests/fast/repaint/line-overflow.html
-/sdcard/android/layout_tests/fast/repaint/background-misaligned.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-2.html
-/sdcard/android/layout_tests/fast/repaint/text-append-dirty-lines.html
-/sdcard/android/layout_tests/fast/repaint/table-row.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-6.html
-/sdcard/android/layout_tests/fast/repaint/table-outer-border.html
-/sdcard/android/layout_tests/fast/repaint/transform-replaced-shadows.html
-/sdcard/android/layout_tests/fast/repaint/overflow-scroll-delete.html
-/sdcard/android/layout_tests/fast/repaint/layer-visibility.html
-/sdcard/android/layout_tests/fast/repaint/border-radius-repaint.html
-/sdcard/android/layout_tests/fast/repaint/table-collapsed-border.html
-/sdcard/android/layout_tests/fast/repaint/transform-translate.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-7235.html
-/sdcard/android/layout_tests/fast/repaint/reflection-repaint-test.html
-/sdcard/android/layout_tests/fast/repaint/4776765.html
-/sdcard/android/layout_tests/fast/repaint/selection-clear.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-6473.html
-/sdcard/android/layout_tests/fast/repaint/intermediate-layout-position-clip.html
-/sdcard/android/layout_tests/fast/repaint/focus-ring.html
-/sdcard/android/layout_tests/fast/repaint/table-cell-vertical-overflow.html
-/sdcard/android/layout_tests/fast/repaint/create-layer-repaint.html
-/sdcard/android/layout_tests/fast/repaint/subtree-root-clip-2.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-6388.html
-/sdcard/android/layout_tests/fast/repaint/overflow-outline-repaint.html
-/sdcard/android/layout_tests/fast/repaint/content-into-overflow.html
-/sdcard/android/layout_tests/fast/repaint/static-to-positioned.html
-/sdcard/android/layout_tests/fast/repaint/bugzilla-5699.html
-/sdcard/android/layout_tests/fast/repaint/transform-absolute-in-positioned-container.html
-/sdcard/android/layout_tests/fast/repaint/outline-repaint-glitch.html
-/sdcard/android/layout_tests/fast/repaint/overflow-delete-line.html
-/sdcard/android/layout_tests/fast/repaint/transform-disable-layoutstate.html
-/sdcard/android/layout_tests/fast/repaint/list-marker.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-3.html
-/sdcard/android/layout_tests/fast/repaint/line-flow-with-floats-7.html
-/sdcard/android/layout_tests/fast/repaint/outline-inset.html
-/sdcard/android/layout_tests/fast/repaint/box-shadow-h.html
-/sdcard/android/layout_tests/fast/repaint/4774354.html
-/sdcard/android/layout_tests/fast/repaint/clip-with-layout-delta.html
-/sdcard/android/layout_tests/fast/repaint/control-clip.html
-/sdcard/android/layout_tests/fast/repaint/selected-replaced.html
-/sdcard/android/layout_tests/fast/repaint/text-selection-rect-in-overflow-2.html
-/sdcard/android/layout_tests/fast/repaint/make-children-non-inline.html
-/sdcard/android/layout_tests/fast/repaint/text-shadow.html
-/sdcard/android/layout_tests/fast/repaint/outline-shrinking.html
-/sdcard/android/layout_tests/fast/repaint/layer-child-outline.html
-/sdcard/android/layout_tests/fast/loader/start-load-in-unload.html
-/sdcard/android/layout_tests/fast/loader/text-document-wrapping.html
-/sdcard/android/layout_tests/fast/xsl/document-function.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-extra-content-at-end.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-enc.xml
-/sdcard/android/layout_tests/fast/xsl/xslt_unicode.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-import-depth.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-enc16.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-enc16to16.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-missing-namespace-in-xslt.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-enc-cyr.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-relative-path.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-mismatched-tags-in-xslt.xml
-/sdcard/android/layout_tests/fast/xsl/xslt-entity.xml
-/sdcard/android/layout_tests/fast/canvas/fillrect-gradient-zero-stops.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transforms-during-path.html
-/sdcard/android/layout_tests/fast/canvas/drawImage.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-7.html
-/sdcard/android/layout_tests/fast/canvas/image-pattern-rotate.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-4.html
-/sdcard/android/layout_tests/fast/canvas/drawImage-with-globalAlpha.html
-/sdcard/android/layout_tests/fast/canvas/canvas-text-baseline.html
-/sdcard/android/layout_tests/fast/canvas/canvas-as-image-incremental-repaint.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-1.html
-/sdcard/android/layout_tests/fast/canvas/canvas-size-change-after-layout.html
-/sdcard/android/layout_tests/fast/canvas/canvas-resize-reset.html
-/sdcard/android/layout_tests/fast/canvas/canvas-bg.html
-/sdcard/android/layout_tests/fast/canvas/zero-size-fill-rect.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-6.html
-/sdcard/android/layout_tests/fast/canvas/patternfill-repeat.html
-/sdcard/android/layout_tests/fast/canvas/image-object-in-canvas.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-3.html
-/sdcard/android/layout_tests/fast/canvas/canvas-composite.html
-/sdcard/android/layout_tests/fast/canvas/quadraticCurveTo.xml
-/sdcard/android/layout_tests/fast/canvas/gradient-add-second-start-end-stop.html
-/sdcard/android/layout_tests/fast/canvas/fill-stroke-clip-reset-path.html
-/sdcard/android/layout_tests/fast/canvas/canvas-text-alignment.html
-/sdcard/android/layout_tests/fast/canvas/canvas-incremental-repaint.html
-/sdcard/android/layout_tests/fast/canvas/canvas-bg-zoom.html
-/sdcard/android/layout_tests/fast/canvas/canvasDrawingIntoSelf.html
-/sdcard/android/layout_tests/fast/canvas/canvas-as-image.html
-/sdcard/android/layout_tests/fast/canvas/canvas-before-css.html
-/sdcard/android/layout_tests/fast/canvas/canvas-incremental-repaint-2.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-5.html
-/sdcard/android/layout_tests/fast/canvas/fillrect_gradient.html
-/sdcard/android/layout_tests/fast/canvas/shadow-offset-2.html
-/sdcard/android/layout_tests/fast/frames/contentWindow_Frame.html
-/sdcard/android/layout_tests/fast/frames/onlyCommentInIFrame.html
-/sdcard/android/layout_tests/fast/frames/content-opacity-2.html
-/sdcard/android/layout_tests/fast/frames/frame-src-attribute.html
-/sdcard/android/layout_tests/fast/frames/frameElement-frame.html
-/sdcard/android/layout_tests/fast/frames/empty-cols-attribute.html
-/sdcard/android/layout_tests/fast/frames/iframe-scrolling-attribute.html
-/sdcard/android/layout_tests/fast/frames/inline-object-inside-frameset.html
-/sdcard/android/layout_tests/fast/frames/valid.html
-/sdcard/android/layout_tests/fast/frames/no-frame-borders.html
-/sdcard/android/layout_tests/fast/frames/empty-frame-src.html
-/sdcard/android/layout_tests/fast/frames/calculate-round.html
-/sdcard/android/layout_tests/fast/frames/frame-navigation.html
-/sdcard/android/layout_tests/fast/frames/001.html
-/sdcard/android/layout_tests/fast/frames/viewsource-on-image-file.html
-/sdcard/android/layout_tests/fast/frames/invalid.html
-/sdcard/android/layout_tests/fast/frames/frameset-style-recalc.html
-/sdcard/android/layout_tests/fast/frames/viewsource-attribute.html
-/sdcard/android/layout_tests/fast/frames/002.html
-/sdcard/android/layout_tests/fast/frames/calculate-relative.html
-/sdcard/android/layout_tests/fast/frames/calculate-order.html
-/sdcard/android/layout_tests/fast/frames/calculate-percentage.html
-/sdcard/android/layout_tests/fast/frames/content-opacity-1.html
-/sdcard/android/layout_tests/fast/frames/iframe-text-contents.html
-/sdcard/android/layout_tests/fast/frames/frame-scrolling-attribute.html
-/sdcard/android/layout_tests/fast/frames/contentWindow_iFrame.html
-/sdcard/android/layout_tests/fast/frames/calculate-fixed.html
-/sdcard/android/layout_tests/fast/frames/frame-element-name.html
-/sdcard/android/layout_tests/fast/frames/frame-set-whitespace-attributes.html
-/sdcard/android/layout_tests/fast/frames/iframe-with-frameborder.html
-/sdcard/android/layout_tests/fast/frames/frameElement-iframe.html
-/sdcard/android/layout_tests/fast/reflections/inline-crash.html
-/sdcard/android/layout_tests/fast/reflections/reflection-masks-opacity.html
-/sdcard/android/layout_tests/fast/reflections/reflection-nesting.html
-/sdcard/android/layout_tests/fast/reflections/reflection-overflow-hidden.html
-/sdcard/android/layout_tests/fast/reflections/table-cell.html
-/sdcard/android/layout_tests/fast/reflections/reflection-masks.html
-/sdcard/android/layout_tests/fast/reflections/reflection-direction.html
-/sdcard/android/layout_tests/fonts/cursive.html
-/sdcard/android/layout_tests/fonts/default.html
-/sdcard/android/layout_tests/fonts/monospace.html
-/sdcard/android/layout_tests/fonts/fantasy.html
-/sdcard/android/layout_tests/fonts/serif.html
-/sdcard/android/layout_tests/fonts/sans-serif.html
-/sdcard/android/layout_tests/http/tests/webarchive/test-css-url-encoding-shift-jis.html
-/sdcard/android/layout_tests/http/tests/webarchive/test-css-url-encoding.html
-/sdcard/android/layout_tests/http/tests/webarchive/test-css-url-encoding-utf-8.html
-/sdcard/android/layout_tests/http/tests/webarchive/test-preload-resources.html
-/sdcard/android/layout_tests/http/tests/multipart/invalid-image-data.html
-/sdcard/android/layout_tests/http/tests/multipart/invalid-image-data-standalone.html
-/sdcard/android/layout_tests/http/tests/local/file-url-sent-as-referer.html
-/sdcard/android/layout_tests/http/tests/misc/location-replace-crossdomain.html
-/sdcard/android/layout_tests/http/tests/misc/acid2.html
-/sdcard/android/layout_tests/http/tests/misc/acid2-pixel.html
-/sdcard/android/layout_tests/http/tests/misc/favicon-as-image.html
-/sdcard/android/layout_tests/http/tests/misc/generated-content-inside-table.html
-/sdcard/android/layout_tests/http/tests/misc/willCacheResponse-delegate-callback.html
-/sdcard/android/layout_tests/http/tests/misc/iframe404.html
-/sdcard/android/layout_tests/http/tests/misc/frame-access-during-load.html
-/sdcard/android/layout_tests/http/tests/navigation/postredirect-goback1.html
-/sdcard/android/layout_tests/http/tests/navigation/error404-subframeload.html
-/sdcard/android/layout_tests/http/tests/navigation/error404-basic.html
-/sdcard/android/layout_tests/http/tests/navigation/anchor-frames.html
-/sdcard/android/layout_tests/http/tests/navigation/postredirect-basic.html
-/sdcard/android/layout_tests/http/tests/navigation/post-goback1.html
-/sdcard/android/layout_tests/http/tests/navigation/post-basic.html
-/sdcard/android/layout_tests/http/tests/navigation/post-frames.html
-/sdcard/android/layout_tests/http/tests/navigation/error404-goback.html
-/sdcard/android/layout_tests/http/tests/navigation/javascriptlink-frames.html
-/sdcard/android/layout_tests/http/tests/navigation/postredirect-frames.html
-/sdcard/android/layout_tests/http/tests/navigation/error404-frames.html
-/sdcard/android/layout_tests/http/tests/loading/simple-subframe.html
-/sdcard/android/layout_tests/media/video-display-toggle.html
-/sdcard/android/layout_tests/media/video-transformed.html
-/sdcard/android/layout_tests/media/video-empty-source.html
-/sdcard/android/layout_tests/media/controls-strict.html
-/sdcard/android/layout_tests/media/audio-controls-rendering.html
-/sdcard/android/layout_tests/media/video-controls-visible-audio-only.html
-/sdcard/android/layout_tests/media/audio-no-installed-engines.html
-/sdcard/android/layout_tests/media/video-zoom.html
-/sdcard/android/layout_tests/media/video-zoom-controls.html
-/sdcard/android/layout_tests/media/video-controls-rendering.html
-/sdcard/android/layout_tests/media/controls-styling.html
-/sdcard/android/layout_tests/media/video-aspect-ratio.html
-/sdcard/android/layout_tests/media/controls-after-reload.html
-/sdcard/android/layout_tests/media/video-layer-crash.html
-/sdcard/android/layout_tests/plugins/netscape-dom-access.html
-/sdcard/android/layout_tests/plugins/embed-attributes-style.html
-/sdcard/android/layout_tests/printing/media-queries-print.html
-/sdcard/android/layout_tests/scrollbars/scrollbar-orientation.html
-/sdcard/android/layout_tests/scrollbars/scrollbar-buttons.html
-/sdcard/android/layout_tests/scrollbars/basic-scrollbar.html
-/sdcard/android/layout_tests/scrollbars/overflow-scrollbar-combinations.html
-/sdcard/android/layout_tests/scrollbars/disabled-scrollbar.html
-/sdcard/android/layout_tests/scrollbars/listbox-scrollbar-combinations.html
-/sdcard/android/layout_tests/security/block-test-no-port.html
-/sdcard/android/layout_tests/security/block-test.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/dom/insertTbodyRebuild1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/dom/appendCellsRebuild1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/dom/appendColGroup1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/dom/appendCol1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/dom/insertTbodyExpand1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/dom/appendCells1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug56024.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-14.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug11945.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-18.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug72393.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug23847.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug7121-2.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug27993-2.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug7243.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-3.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug1647.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-7.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug101759.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug2479-5.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug14007-1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-11.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug1010.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-15.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug14159-2.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug25707.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug47163.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug91057.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug131020-3.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug19526.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug14489.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug73629.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug1725.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-4.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug106336.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-8.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug22122.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug10216.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug14007-2.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug106966.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug32205-4.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug42043.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug178855.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-12.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug92868_1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug21518.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug45621.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-16.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug65372.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug59252.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug29058-2.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug17826.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug67915-2.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug46268-4.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug1128.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug1164.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/97619.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-5.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug10140.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-9.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug32205-1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug61042-1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug104898.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug8499.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug9879-1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug128876.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-13.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug58402-2.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug24880-1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug85016.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-17.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug80762-2.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug18770.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug33784.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3105.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug1055-2.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug89315.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug92647-1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug1262.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug7113.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-2.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3517.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug220653.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug4294.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-6.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug6933.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug51000.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug11331.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug61042-2.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/bugs/bug3166-10.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/other/empty_cells.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/other/test4.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/core/col_span2.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/core/columns.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/core/captions1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/core/cols1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/core/backgrounds.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/core/captions2.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/core/captions3.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/core/conflicts.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/core/standards1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/collapsing_borders/bug41262-5.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/collapsing_borders/bug41262-6.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/collapsing_borders/bug41262-1.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/x_table_frame_below.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_position-table-cell.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_caption.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_row.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_hidden_tr.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_position-table-column.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/tables_caption_align_right.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_border-table-column-group.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_position-table-row-group.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_caption_hidden.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row_sibling.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_frame_lhs.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_rules_rows.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/x_table_rules_all.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_frame_above.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_table.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_frame_void.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/x_table_frame_hsides.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_td_valign_top.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_caption_right.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_hidden_tbody.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_layers-show.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/x_caption_align_right.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_border-table-cell.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_frame_below.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_table_caption.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_hidden_table.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/x_table_rules_cols.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_cell.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_position-table-row.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_td_align_right.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_border-table-row.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody_sibling.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_rules_cols.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/x_table_frame_border.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/x_colgroup_width_px.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_td_valign_bottom.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_border-table-quirks.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/x_table_frame_box.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/x_table_rules_rows.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_frame_hsides.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_caption_left.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/x_caption_align_left.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_caption_hidden_table.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_border-table-row-group.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_caption_bottom.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_border-table.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_frame_rhs.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_frame_vsides.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_cell_sibling.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_layers-hide.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_td_valign_middle.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/tables_cellspacing_pct.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_position-table-column-group.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/x_table_frame_lhs.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_fixed-bg.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_td_dynamic_deactivate.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/x_table_frame_rhs.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/x_table_frame_above.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/x_table_frame_vsides.xml
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/backgr_border-table-column.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_caption_top.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_table.html
-/sdcard/android/layout_tests/tables/mozilla_expected_failures/marvin/tables_caption_align_left.html
-/sdcard/android/layout_tests/tables/mozilla/dom/deleteCellsRebuild1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/deleteRowsShrink1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/insertCellsRebuild1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/insertCellsRebuild2.html
-/sdcard/android/layout_tests/tables/mozilla/dom/deleteCol1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/deleteCol2.html
-/sdcard/android/layout_tests/tables/mozilla/dom/insertColGroups1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/deleteCol3.html
-/sdcard/android/layout_tests/tables/mozilla/dom/insertColGroups2.html
-/sdcard/android/layout_tests/tables/mozilla/dom/deleteCellsShrink1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/deleteTbodyExpand1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/deleteCellsShrink2.html
-/sdcard/android/layout_tests/tables/mozilla/dom/tableDom.html
-/sdcard/android/layout_tests/tables/mozilla/dom/appendCol2.html
-/sdcard/android/layout_tests/tables/mozilla/dom/appendTbodyExpand1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/deleteTbodyRebuild1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/deleteColGroup1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/deleteColGroup2.html
-/sdcard/android/layout_tests/tables/mozilla/dom/insertRowsExpand1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/appendRowsExpand1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/deleteRowsRebuild1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/insertCols1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/insertCols2.html
-/sdcard/android/layout_tests/tables/mozilla/dom/insertRowsRebuild1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/insertCellsExpand1.html
-/sdcard/android/layout_tests/tables/mozilla/dom/insertCols3.html
-/sdcard/android/layout_tests/tables/mozilla/dom/insertCellsExpand2.html
-/sdcard/android/layout_tests/tables/mozilla/dom/insertCols4.html
-/sdcard/android/layout_tests/tables/mozilla/dom/insertCols5.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug30418.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug14159-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug46623-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug24661.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug30692.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug53690-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug88035-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug51727.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug81934.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug68912.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug60992.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug92647-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug120107.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1271.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug28928.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug103533.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4093.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2267.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug92868.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4429.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug5538.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug106816.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug10009.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug149275-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug32205-3.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug13118.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1802s.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug10296-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug647.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug48028-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug72359.xml
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug25367.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1430.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1224.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug67915-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug45486.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug113424.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug108340.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug3454.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2479-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug139524-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4849-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug11321.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2886.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug219693-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug42443.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug54450.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug269566.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug12709.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug80762-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug21918.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1302.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug25663.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug55527.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug7112-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1055-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug69382-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug17587.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug102145-3.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2516.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4803.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug19599.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1188.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug3718.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug110566.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug106158-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug5188.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug215629.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug154780.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug137388-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug10039.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug5798.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug22246-3a.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug25074.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug27038-3.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/45621.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug25086.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug43854-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug34538.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug131020.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug7121-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4501.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug53891.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug8032-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug46268-5.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug63785.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug113235-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug69187.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug9024.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug120364.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug109043.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug220536.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1818-5.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2973.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug222467.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug6674.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug99948.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug277062.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug127267.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug30332-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug10036.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug16012.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2997.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug17130-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug650.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug14323.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug10565.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug52505.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug29314.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug13169.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug30559.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug29326.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug55545.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug46268-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug18359.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug3037-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug82946-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug55694.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug6304.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug3263.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1818-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug101674.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug123862.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug221784-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug275625.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug106795.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug22513.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug57300.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug51037.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug119786.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug12908-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug15247.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug46623-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug34176.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug53690-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug24880.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug41890.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug88035-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug50695-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1163-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug8411.xml
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1802.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug3260.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug97138.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug9123-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug3309-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug3191.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1296.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug222336.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2773.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug8381.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug194024.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2947.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug5838.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug60013.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug138725.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug11026.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug175455-4.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug58402-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug43039.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug48028-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug24627.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug35662.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug21299.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug26178.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug18664.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug23299.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug88524.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug48827.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1318.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4427.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug6184.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug11384s.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug5835.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4576.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2479-3.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug139524-3.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug133948.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug9879-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug11944.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug13196.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug20579.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug29058-3.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug96334.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug7112-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug60749.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug59354.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug69382-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug27993-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug57378.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug102145-4.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug98196.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug9072.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2585.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug145572.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug137388-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug5799.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug157890.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug196870.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug22246-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug73321.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug18440.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug965.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug131020-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug43854-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug96343.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug46368-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug102145-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug8032-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1067-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2065.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug97383.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug113235-3.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug3681-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug9271-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1809.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2962.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1818-6.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2469.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug8950.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug133756-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2886-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug159108.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4849.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug25004.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug12910.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug43204.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug20804.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug23072.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug19061-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug10269-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug13526.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug52506.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug27038-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug46480-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug42187.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2050.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug3103.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug39209.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug46268.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug46268-3.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug38916.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug82946-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug3037-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4523.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug67864.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug8361.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1818-3.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2981-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2684.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4385.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug126742.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug12910-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug8858.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug709.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug16252.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug33137.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug45350.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug12908-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug92143.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug14159-3.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug50695-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug29429.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1261.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4520.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug46944.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/adforce_imgis_com.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug18955.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug227123.xml
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug3309-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug9123-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug7342.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug83786.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4382.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug24200.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug641-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug625.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug32205-5.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug56201.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug32841.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug44505.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug45055-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug15544.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug40828.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1800.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug6404.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2509.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2479-4.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4739.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug139524-4.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug13105.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug149275-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug32205-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug12008.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug10296-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug727.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug278385.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug13484.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug15933.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug60807.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug93363.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug14929.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug86708.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug57828.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug11384q.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2954.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2479-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug139524-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug219693-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug137388-3.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug30273.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug22246-3.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug22246-2a.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug12384.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug44523.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug60804.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug86220.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug32447.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug17138.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug56405.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug26553.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1220.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug29058-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug33855.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug29157.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2123.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug19356.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug28933.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug46368-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug18558.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug102145-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1067-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1474.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug3681-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4284.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug4527.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug9271-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2296.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug106158-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2757.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug128229.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug133756-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug5797.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug278266.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug23235.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug19061-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug10269-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug963.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug27038-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug12268.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug45055.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug7471.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug75250.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug46480-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug30985.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug46924.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug56563.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug23994.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug113235-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug99923.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug55789.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2981-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1818-4.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug7714.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug222846.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug68998.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug30332-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug17130-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug51140.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug23151.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug10633.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug24503.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug28341.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug47432.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug101201.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug17168.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug46268-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug78162.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug17548.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug100334.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug57828-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1818-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug2763.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug1828.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug221784-1.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug3977.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug131020_iframe.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug641-2.html
-/sdcard/android/layout_tests/tables/mozilla/bugs/bug22019.html
-/sdcard/android/layout_tests/tables/mozilla/other/move_row.html
-/sdcard/android/layout_tests/tables/mozilla/other/nestedTables.html
-/sdcard/android/layout_tests/tables/mozilla/other/wa_table_tr_align.html
-/sdcard/android/layout_tests/tables/mozilla/other/ms.html
-/sdcard/android/layout_tests/tables/mozilla/other/cell_widths.html
-/sdcard/android/layout_tests/tables/mozilla/other/test3.html
-/sdcard/android/layout_tests/tables/mozilla/other/cellspacing.html
-/sdcard/android/layout_tests/tables/mozilla/other/nested2.html
-/sdcard/android/layout_tests/tables/mozilla/other/test6.html
-/sdcard/android/layout_tests/tables/mozilla/other/padding.html
-/sdcard/android/layout_tests/tables/mozilla/other/body_col.html
-/sdcard/android/layout_tests/tables/mozilla/other/wa_table_thtd_rowspan.html
-/sdcard/android/layout_tests/tables/mozilla/other/slashlogo.html
-/sdcard/android/layout_tests/tables/mozilla/images/adforce_imgis_com.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_widths_auto_auto.html
-/sdcard/android/layout_tests/tables/mozilla/core/captions.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_widths_fix_fixPer.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_widths_auto_autoFix.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_widths_auto_autoPer.html
-/sdcard/android/layout_tests/tables/mozilla/core/row_span.html
-/sdcard/android/layout_tests/tables/mozilla/core/cell_heights.html
-/sdcard/android/layout_tests/tables/mozilla/core/misc.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_widths_auto_autoFixPer.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_widths_auto_fix.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_widths_auto_per.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_widths_fix_auto.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_span.html
-/sdcard/android/layout_tests/tables/mozilla/core/margins.html
-/sdcard/android/layout_tests/tables/mozilla/core/borders.html
-/sdcard/android/layout_tests/tables/mozilla/core/table_frame.html
-/sdcard/android/layout_tests/tables/mozilla/core/table_rules.html
-/sdcard/android/layout_tests/tables/mozilla/core/table_heights.html
-/sdcard/android/layout_tests/tables/mozilla/core/nested1.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_widths_fix_autoFix.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_widths_auto_fixPer.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_widths_fix_autoPer.html
-/sdcard/android/layout_tests/tables/mozilla/core/bloomberg.html
-/sdcard/android/layout_tests/tables/mozilla/core/one_row.html
-/sdcard/android/layout_tests/tables/mozilla/core/table_widths.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_widths_fix_autoFixPer.html
-/sdcard/android/layout_tests/tables/mozilla/core/box_sizing.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_widths_fix_fix.html
-/sdcard/android/layout_tests/tables/mozilla/core/col_widths_fix_per.html
-/sdcard/android/layout_tests/tables/mozilla/collapsing_borders/bug41262-3.html
-/sdcard/android/layout_tests/tables/mozilla/collapsing_borders/bug41262-4.html
-/sdcard/android/layout_tests/tables/mozilla/collapsing_borders/bug127040.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_green.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tfoot_valign_top.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_olive.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_teal_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tr_align_center.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_colgroup_width_pct.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_class.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_olive_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_border_0.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/backgr_simple-table-row-group.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_maroon_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tfoot_align_center.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/colgroup_valign_baseline.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/colgroup_align_right.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_col_width_rel.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_lime.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/td_valign_baseline.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_navy.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tr_align_char.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_valign_top.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/backgr_simple-table-column.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tbody_valign_baseline.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_nowrap.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_id.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_style.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_bgcolor_rgb.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_green_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_caption_id.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/thead_align_char.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_thead_class.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_colgroup_span.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_bgcolor_rgb.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/th_valign_bottom.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_silver_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/table_rules_groups.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_col_valign_baseline.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_gray.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_align_center.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tbody_valign_bottom.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tr_bgcolor_rgb.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_cellspacing.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_width_px.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_navy_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_col_align_left.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/td_valign_middle.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tr_valign_middle.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_yellow.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tr_style.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_td_width.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_green.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/backgr_simple-table-cell.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tbody_align_left.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_silver.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/thead_valign_top.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_col_align_center.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_border_px.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_valign_bottom.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_thead_id.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_th_colspan.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_cellspacing_pct.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_td_nowrap.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tfoot_char.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_blue.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_navy.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_style.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tbody_align_center.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_lime_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/thead_align_right.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_aqua_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_colgroup_valign_bottom.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tfoot_align_left.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_rowspan.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_bgcolor_name.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_id.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_col_align_char.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_rowspan.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_navy_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tfoot_valign_middle.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_thead_valign_baseline.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_red.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_gray.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_align_right.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tfoot_align_justify.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_fuchsia.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_colgroup_align_right.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tfoot_align_right.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_white_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_col_align_justify.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_thead_valign_top.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tbody_align_justify.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tr_class.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_colgroup_align_left.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_maroon_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_rules_none.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/thead_valign_middle.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_caption_align_bot.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_cellpadding_pct.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_yellow_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_col_align_right.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_colspan.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_valign_top.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/thead_align_justify.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/th_valign_baseline.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_colspan.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/colgroup_align_left.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_colgroup_valign_baseline.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_nowrap.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_lime_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_aqua_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_td_align_left.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tfoot_align_char.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_align_justify.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_border_none.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_border_1.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/table_row_align_center.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tbody_align_right.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_th_align_left.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/td_valign_bottom.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_maroon.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/table_frame_border.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_class.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/thead_align_center.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_caption_style.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tfoot_valign_bottom.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_blue.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_col_width_px.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_align_center.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_valign_middle.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_silver_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_style.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_td_align_center.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_colgroup_width_rel.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/backgr_index.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_row_th_nowrap.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_black_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tr_id.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_colgroup_align_char.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tbody_align_left.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_colgroup_valign_middle.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_width.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_thead_align_justify.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tfoot_align_right.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_cellpadding_pct.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_gray_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_olive_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tr_valign_baseline.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_thead_align_right.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tfoot_valign_bottom.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_align_right.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_id.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_valign_baseline.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tbody_align_char.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tr_valign_top.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/body_col.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/backgr_simple-table-row.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_fuchsia.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_cellpadding.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/colgroup_align_center.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_caption_class.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_frame_void.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_td_align_right.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/thead_valign_bottom.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_td_rowspan.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tbody_align_char.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tbody_char.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_class.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_purple.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_rules_groups.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/backgr_simple-table.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tfoot_valign_middle.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_gray_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tfoot_style.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_align_left.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_class.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/colgroup_width_pct.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tbody_valign_top.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/body_tfoot.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/colgroup_span.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_width_pct.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tfoot_valign_baseline.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_yellow_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_align_left.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_height.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_white.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tr_align_justify.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_align_right.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_align_right.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tbody_valign_baseline.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/table_frame_box.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_yellow.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tr_align_right.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tfoot_align_left.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_width_px.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/thead_char.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_col_valign_top.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_col_valign_bottom.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/table_row_align_right.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_border_2.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_aqua.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_fuchsia_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tbody_valign_bottom.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/td_valign_top.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tfoot_id.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tfoot_valign_baseline.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/th_valign_top.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/col_span.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_align_left.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/table_row_align_left.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_purple_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tfoot_class.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_align_char.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_red_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_col_width_pct.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_green_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_valign_top.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_border.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_white_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/colgroup_valign_top.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_fuchsia_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_default.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_caption_align_bottom.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_silver.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_valign_bottom.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_align_center.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_red.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_black.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/table_overflow_td_dynamic_deactivate.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tfoot_valign_top.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_cellpadding.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/colgroup_valign_middle.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_th_align_right.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_th_rowspan.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_cellspacing.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/table_rules_none.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_white.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/colgroup_align_justify.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/table_rules_all.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_thead_valign_bottom.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_thead_align_left.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_blue_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_colgroup_valign_top.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_valign_middle.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_black_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/thead_align_left.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tbody_align_right.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_caption_align_top.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_col_valign_middle.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_align_left.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tbody_id.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_col_span.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_bgcolor_name.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_align_justify.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tbody_valign_middle.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_height.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_thead_align_center.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tbody_style.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_teal.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_td_height.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_olive.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_th_height.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/body_thead.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_colgroup_align_justify.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_maroon.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/backgr_simple-table-column-group.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/table_overflow_hidden_td.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_valign_middle.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_black.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/backgr_layers-opacity.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_style.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_th_align_center.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_thead_align_char.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tr_bgcolor_name.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_red_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_blue_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tbody_valign_top.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_lime.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/th_valign_middle.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_width_percent.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_width.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_teal_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_valign_baseline.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tbody_valign_middle.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/colgroup_width_px.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_valign_baseline.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_align_char.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/backgr_position-table.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tfoot_align_char.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_th_width.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tfoot_align_center.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tbody_align_justify.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_bgcolor_rgb.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_purple_rgb.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tbody_align_center.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/colgroup_valign_bottom.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_td_colspan.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_caption_align_top.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_table_align_center.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_thead_valign_middle.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_colgroup_align_center.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/thead_valign_baseline.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_thead_style.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tbody_class.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_border_3.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tr_align_left.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tr_valign_bottom.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/body_tbody.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_td_bgcolor_name.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_bgcolor_teal.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_tfoot_align_justify.xml
-/sdcard/android/layout_tests/tables/mozilla/marvin/tables_bgcolor_purple.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/tr_valign_bottom.html
-/sdcard/android/layout_tests/tables/mozilla/marvin/x_th_id.xml
-/sdcard/android/layout_tests/transforms/2d/transform-borderbox.html
-/sdcard/android/layout_tests/transforms/2d/zoom-menulist.html
-/sdcard/android/layout_tests/transforms/2d/transform-origin-borderbox.html
-/sdcard/android/layout_tests/transforms/2d/compound-transforms-vs-containers.html
-/sdcard/android/layout_tests/transforms/3d/hit-testing/backface-hit-test.html
-/sdcard/android/layout_tests/transforms/3d/hit-testing/backface-no-transform-hit-test.html
-/sdcard/android/layout_tests/transforms/3d/hit-testing/rotated-hit-test.html
-/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping-origins.html
-/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping-deep.html
-/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping-coplanar.html
-/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping-preserve-3d.html
-/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping-2.html
-/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping-3.html
-/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping.html
-/sdcard/android/layout_tests/transforms/3d/point-mapping/3d-point-mapping-overlapping.html
-/sdcard/android/layout_tests/transforms/3d/general/perspective-units.html
-/sdcard/android/layout_tests/transforms/3d/general/perspective-non-layer.html
-/sdcard/android/layout_tests/transforms/no_transform_hit_testing.html
-/sdcard/android/layout_tests/transitions/transition-drt-api.html
-/sdcard/android/layout_tests/webarchive/loading/cache-expired-subresource.html
-/sdcard/android/layout_tests/webarchive/test-css-import.html
-/sdcard/android/layout_tests/webarchive/test-img-src.html
-/sdcard/android/layout_tests/webarchive/test-link-rel-icon.html
-/sdcard/android/layout_tests/webarchive/adopt-attribute-styled-body-webarchive.html
-/sdcard/android/layout_tests/webarchive/archive-empty-frame-dom.html
-/sdcard/android/layout_tests/webarchive/test-frameset.html
-/sdcard/android/layout_tests/webarchive/test-body-background.html
-/sdcard/android/layout_tests/webarchive/test-input-src.html
-/sdcard/android/layout_tests/webarchive/archive-empty-frame-source.html
-/sdcard/android/layout_tests/webarchive/doctype.html
-/sdcard/android/layout_tests/webarchive/test-css-url-resources-inline-styles.html
-/sdcard/android/layout_tests/webarchive/test-table-background.html
-/sdcard/android/layout_tests/webarchive/adopt-inline-styled-node-webarchive.html
-/sdcard/android/layout_tests/webarchive/test-object-data.html
-/sdcard/android/layout_tests/webarchive/test-css-url-resources-in-stylesheets.html
-/sdcard/android/layout_tests/webarchive/archive-with-unencoded-url.html
-/sdcard/android/layout_tests/webarchive/test-link-href.html
-/sdcard/android/layout_tests/webarchive/test-duplicate-resources.html
-/sdcard/android/layout_tests/webarchive/test-xml-stylesheet.xml
-/sdcard/android/layout_tests/webarchive/test-td-background.html
-/sdcard/android/layout_tests/webarchive/test-script-src.html
-/sdcard/android/layout_tests/webarchive/adopt-attribute-styled-node-webarchive.html
diff --git a/tests/DumpRenderTree/assets/results/layout_tests_passed.txt b/tests/DumpRenderTree/assets/results/layout_tests_passed.txt
deleted file mode 100644
index 942b647..0000000
--- a/tests/DumpRenderTree/assets/results/layout_tests_passed.txt
+++ /dev/null
@@ -1,2960 +0,0 @@
-/sdcard/android/layout_tests/accessibility/non-native-image-crash.html
-/sdcard/android/layout_tests/animations/animation-css-rule-types.html
-/sdcard/android/layout_tests/animations/animation-events-create.html
-/sdcard/android/layout_tests/animations/play-state.html
-/sdcard/android/layout_tests/animations/animation-start-event-destroy-renderer.html
-/sdcard/android/layout_tests/animations/combo-transform-translate+scale.html
-/sdcard/android/layout_tests/animations/transform-origin-vs-functions.html
-/sdcard/android/layout_tests/animations/simultaneous-start-transform.html
-/sdcard/android/layout_tests/animations/lineheight-animation.html
-/sdcard/android/layout_tests/animations/import.html
-/sdcard/android/layout_tests/animations/simultaneous-start-left.html
-/sdcard/android/layout_tests/animations/fill-unset-properties.html
-/sdcard/android/layout_tests/animations/multiple-keyframes.html
-/sdcard/android/layout_tests/animations/change-one-anim.html
-/sdcard/android/layout_tests/animations/keyframes-comma-separated.html
-/sdcard/android/layout_tests/animations/matrix-anim.html
-/sdcard/android/layout_tests/animations/keyframes-rule.html
-/sdcard/android/layout_tests/animations/generic-from-to.html
-/sdcard/android/layout_tests/animations/big-rotation.html
-/sdcard/android/layout_tests/animations/keyframe-timing-functions.html
-/sdcard/android/layout_tests/animations/transition-and-animation-1.html
-/sdcard/android/layout_tests/animations/computed-style.html
-/sdcard/android/layout_tests/animations/animation-iteration-event-destroy-renderer.html
-/sdcard/android/layout_tests/animations/keyframes.html
-/sdcard/android/layout_tests/animations/multiple-animations.html
-/sdcard/android/layout_tests/animations/animation-end-event-destroy-renderer.html
-/sdcard/android/layout_tests/animations/transition-and-animation-2.html
-/sdcard/android/layout_tests/animations/import-crash.html
-/sdcard/android/layout_tests/animations/empty-keyframes.html
-/sdcard/android/layout_tests/animations/width-using-ems.html
-/sdcard/android/layout_tests/animations/combo-transform-rotate+scale.html
-/sdcard/android/layout_tests/animations/keyframes-out-of-order.html
-/sdcard/android/layout_tests/css1/units/zero-duration-without-units.html
-/sdcard/android/layout_tests/css2.1/atrule_longest_match.html
-/sdcard/android/layout_tests/css3/khtml-background-size-0x0-bmp.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrlastchild.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementnormalize.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_noderemovechildnode.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementgetattributenodenull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapreturnfirstitem.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrparentnodenull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapreturnattrnode.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementsetattributenodenull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementnormalize2.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_noderemovechild.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeinsertbeforeinvalidnodetype.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodechildnodesappendchild.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrfirstchild.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodevalue05.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatagetlength.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodedocumentnodename.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdataindexsizeerrinsertdataoffsetnegative.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementinvalidcharacterexception.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_textsplittexttwo.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrsetvalue1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeclonegetparentnull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentcreatetextnode.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentinvalidcharacterexceptioncreateelement.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodelistreturnlastitem.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrchildnodes1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdataindexsizeerrdeletedataoffsetnegative.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodetextnodevalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementretrieveallattributes.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentinvalidcharacterexceptioncreateelement1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_domimplementationfeaturenoversion.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrprevioussiblingnull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementgetelementsbytagnamespecialvalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeappendchildnodeancestor.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrappendchild1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementgetelementsbytagnamenomatch.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeappendchildgetnodename.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatadeletedataend.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatareplacedataexceedslengthofarg.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_notationssetnameditem1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodereplacechildinvalidnodetype.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeinsertbeforenodename.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrinsertbefore7.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodereplacechild.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodegetprevioussiblingnull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodehaschildnodesfalse.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapreturnlastitem.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodegetfirstchildnull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_notationsremovenameditem1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeinsertbeforedocfragment.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdataappenddata.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeattributenodevalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrspecifiedvalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrgetvalue1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodereplacechildnewchilddiffdocument.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_domimplementationfeaturenull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdataindexsizeerrreplacedataoffsetnegative.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrinsertbefore1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeinsertbeforenewchildexists.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodevalue06.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodelistindexnotzero.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_textwithnomarkup.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_entitiessetnameditem1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrsetvalue2.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentgetelementsbytagnametotallength.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentinvalidcharacterexceptioncreateattribute1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodelistindexgetlengthofemptylist.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementchangeattributevalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeattributenodetype.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodegetnextsiblingnull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapinuseattributeerr.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrchildnodes2.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrcreatetextnode2.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodechildnodesempty.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdataappenddatagetdata.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatareplacedataend.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodegetlastchildnull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrcreatetextnode.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeclonefalsenocopytext.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeappendchild.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrappendchild2.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdataindexsizeerrreplacedataoffsetgreater.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodetextnodename.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeparentnode.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapnotfounderr.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementretrieveattrvalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodereplacechildoldchildnonexistent.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeinsertbefore.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodehaschildnodes.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodecommentnodename.html
-/sdcard/android/layout_tests/dom/html/level1/core/documentinvalidcharacterexceptioncreateentref1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrgetvalue2.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementretrievetagname.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrspecifiedvaluechanged.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeinsertbeforenewchilddiffdocument.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrinsertbefore2.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdataindexsizeerrreplacedatacountnegative.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatadeletedatabegining.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentcreateelement.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdataindexsizeerrinsertdataoffsetgreater.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_textparseintolistofelements.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodevalue07.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodegetownerdocumentnull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatareplacedatamiddle.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeappendchildinvalidnodetype.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementremoveattributenode.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdataindexsizeerrsubstringoffsetgreater.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatadeletedatamiddle.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatasubstringexceedsvalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentgetrootnode.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatainsertdataend.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodedocumentnodetype.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeclonenodetrue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapchildnoderange.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapnumberofnodes.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodevalue01.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentgetimplementation.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeappendchildchildexists.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrappendchild3.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentgetelementsbytagnamelength.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeelementnodeattributes.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdataindexsizeerrsubstringnegativeoffset.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_noderemovechildgetnodename.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdataindexsizeerrsubstringcountnegative.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementnotfounderr.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodedocumentfragmentnodename.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdataindexsizeerrdeletedataoffsetgreater.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatasubstringvalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodegetownerdocument.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementassociatedattribute.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementinvalidcharacterexception1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_textindexsizeerroffsetoutofbounds.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatadeletedatagetlengthanddata.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodereplacechildnodeancestor.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodevalue08.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_textsplittextthree.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentcreateelementcasesensitive.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrinsertbefore3.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodedocumentnodeattribute.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdataindexsizeerrdeletedatacountnegative.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeelementnodevalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodereplacechildnewchildexists.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_domimplementationfeaturexml.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementreplaceexistingattributegevalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeelementnodename.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementcreatenewattribute.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodecommentnodevalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrnextsiblingnull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrremovechild1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapwrongdocumenterr.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapreturnnull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodevalue02.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrappendchild4.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementinuseattributeerr.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodegetlastchild.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementgetattributenode.html
-/sdcard/android/layout_tests/dom/html/level1/core/documentgetdoctypenodtd.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapsetnameditemreturnvalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatareplacedataexceedslengthofdata.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodetextnodetype.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeattributenodeattribute.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentgetdoctype.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapsetnameditemthatexists.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentcreatedocumentfragment.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_commentgetcomment.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attreffectivevalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_textsplittextfour.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeinsertbeforenodeancestor.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrinsertbefore4.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_textindexsizeerrnegativeoffset.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodecommentnodetype.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodetextnodeattribute.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodedocumentnodevalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatadeletedataexceedslength.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_textsplittextone.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodedocumentfragmentnodevalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatagetdata.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatainsertdatabeginning.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodegetnextsibling.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodelistreturnfirstitem.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrremovechild2.html
-/sdcard/android/layout_tests/dom/html/level1/core/documentinvalidcharacterexceptioncreatepi.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodevalue03.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrappendchild5.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrhaschildnodes.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrreplacechild1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrnormalize.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodedocumentfragmentnodetype.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementreplaceexistingattribute.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeappendchildnewchilddiffdocument.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodelisttraverselist.html
-/sdcard/android/layout_tests/dom/html/level1/core/documentinvalidcharacterexceptioncreateentref.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatasetnodevalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_entitiesremovenameditem1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrinsertbefore5.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementgetelementsbytagname.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrcreatedocumentfragment.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrclonenode1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapremovenameditem.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementaddnewattribute.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodelistindexequalzero.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodechildnodes.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementgetelementempty.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatainsertdatamiddle.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentcreatecomment.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodegetprevioussibling.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeinsertbeforerefchildnonexistent.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementremoveattributeaftercreate.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_noderemovechildoldchildnonexistent.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementwrongdocumenterr.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_characterdatareplacedatabegining.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeattributenodename.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodecommentnodeattributes.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodevalue04.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentinvalidcharacterexceptioncreateattribute.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementremoveattribute.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrappendchild6.html
-/sdcard/android/layout_tests/dom/html/level1/core/documentinvalidcharacterexceptioncreatepi1.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeelementnodetype.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrname.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapgetnameditem.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementgettagname.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapsetnameditem.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeinsertbeforerefchildnull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrreplacechild2.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeparentnodenull.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodecloneattributescopied.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeclonenodefalse.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodereplacechildnodename.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementgetelementsbytagnameaccessnodelist.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeclonetruecopytext.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_attrinsertbefore6.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodelistindexgetlength.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_elementreplaceattributewithself.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentcreateattribute.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodeappendchilddocfragment.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_namednodemapsetnameditemwithnewvalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_documentgetelementsbytagnamevalue.html
-/sdcard/android/layout_tests/dom/html/level1/core/hc_nodegetfirstchild.html
-/sdcard/android/layout_tests/dom/html/level2/events/EventTargetCast01.html
-/sdcard/android/layout_tests/dom/html/level2/events/dispatchEvent12.html
-/sdcard/android/layout_tests/dom/html/level2/events/dispatchEvent04.html
-/sdcard/android/layout_tests/dom/html/level2/events/createEvent02.html
-/sdcard/android/layout_tests/dom/html/level2/events/dispatchEvent08.html
-/sdcard/android/layout_tests/dom/html/level2/events/initEvent04.html
-/sdcard/android/layout_tests/dom/html/level2/events/DocumentEventCast01.html
-/sdcard/android/layout_tests/dom/html/level2/events/dispatchEvent01.html
-/sdcard/android/layout_tests/dom/html/level2/events/dispatchEvent13.html
-/sdcard/android/layout_tests/dom/html/level2/events/dispatchEvent05.html
-/sdcard/android/layout_tests/dom/html/level2/events/initEvent01.html
-/sdcard/android/layout_tests/dom/html/level2/events/createEvent03.html
-/sdcard/android/layout_tests/dom/html/level2/events/initEvent05.html
-/sdcard/android/layout_tests/dom/html/level2/events/dispatchEvent09.html
-/sdcard/android/layout_tests/dom/html/level2/events/dispatchEvent10.html
-/sdcard/android/layout_tests/dom/html/level2/events/dispatchEvent02.html
-/sdcard/android/layout_tests/dom/html/level2/events/initEvent02.html
-/sdcard/android/layout_tests/dom/html/level2/events/dispatchEvent06.html
-/sdcard/android/layout_tests/dom/html/level2/events/createEvent04.html
-/sdcard/android/layout_tests/dom/html/level2/events/initEvent06.html
-/sdcard/android/layout_tests/dom/html/level2/events/dispatchEvent11.html
-/sdcard/android/layout_tests/dom/html/level2/events/dispatchEvent03.html
-/sdcard/android/layout_tests/dom/html/level2/events/createEvent01.html
-/sdcard/android/layout_tests/dom/html/level2/events/dispatchEvent07.html
-/sdcard/android/layout_tests/dom/html/level2/events/initEvent03.html
-/sdcard/android/layout_tests/dom/html/level2/events/createEvent05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableColElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement87.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/hasFeature04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement26.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement141.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLButtonElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement37.html
-/sdcard/android/layout_tests/dom/html/level2/html/table12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLIsIndexElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFrameSetElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLModElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement27.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement90.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/table45.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement14.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionsCollection01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFrameElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement124.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement40.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLParamElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFormElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAreaElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement30.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptGroupElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement73.html
-/sdcard/android/layout_tests/dom/html/level2/html/table28.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLIFrameElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAnchorElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/anchor02.html
-/sdcard/android/layout_tests/dom/html/level2/html/object09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement27.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement107.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement23.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLMetaElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBodyElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument25.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement13.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement56.html
-/sdcard/android/layout_tests/dom/html/level2/html/table31.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLIFrameElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/object12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement30.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableColElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement89.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement110.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLabelElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/hasFeature06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement28.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement143.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBaseElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLButtonElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement39.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLIsIndexElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLModElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLCollection01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLImageElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement29.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement92.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement13.html
-/sdcard/android/layout_tests/dom/html/level2/html/table47.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement16.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAppletElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionsCollection03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement126.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement42.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLParamElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFormElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAreaElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement75.html
-/sdcard/android/layout_tests/dom/html/level2/html/table50.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAnchorElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/anchor04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement13.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement14.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement29.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLScriptElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement109.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement25.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBodyElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement13.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument27.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement15.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement58.html
-/sdcard/android/layout_tests/dom/html/level2/html/table33.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLHeadingElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/area01.html
-/sdcard/android/layout_tests/dom/html/level2/html/object14.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableColElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement32.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement112.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLabelElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDivElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLUListElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement145.html
-/sdcard/android/layout_tests/dom/html/level2/html/button01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLButtonElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement61.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLegendElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCaptionElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement13.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLCollection03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLImageElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableColElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement94.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement15.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFieldSetElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/table49.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLIElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement18.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAppletElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionsCollection05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument13.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement128.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLMapElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement44.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAreaElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement77.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLinkElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/table52.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement21.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAnchorElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/anchor06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement15.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement16.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement131.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLParagraphElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLScriptElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement27.html
-/sdcard/android/layout_tests/dom/html/level2/html/table02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBodyElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement15.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement17.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement80.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/table35.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLHeadingElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/area03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableColElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement34.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement114.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement30.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBodyElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLStyleElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement20.html
-/sdcard/android/layout_tests/dom/html/level2/html/button03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLButtonElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement63.html
-/sdcard/android/layout_tests/dom/html/level2/html/table18.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLegendElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement15.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLCollection05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableColElement12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLImageElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFrameElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement96.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement17.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement13.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAppletElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionsCollection07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument15.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement46.html
-/sdcard/android/layout_tests/dom/html/level2/html/table21.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLIFrameElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/object02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement20.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLQuoteElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement79.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLinkElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement100.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement13.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAnchorElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement17.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement18.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement133.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLScriptElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement29.html
-/sdcard/android/layout_tests/dom/html/level2/html/table04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBodyElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement17.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement19.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement82.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/table37.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLHeadingElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAnchorElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement20.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement21.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement36.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement116.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement32.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBodyElement12.html
-/sdcard/android/layout_tests/dom/html/level2/html/basefont01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLStyleElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement20.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement22.html
-/sdcard/android/layout_tests/dom/html/level2/html/button05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement65.html
-/sdcard/android/layout_tests/dom/html/level2/html/table40.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement17.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLCollection07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLImageElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFrameElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement98.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement19.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement15.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAppletElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFormElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument17.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement48.html
-/sdcard/android/layout_tests/dom/html/level2/html/table23.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLIFrameElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/object04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement20.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLCollection10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLImageElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLPreElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement22.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOListElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLinkElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement102.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement15.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAppletElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement19.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument20.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement135.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement51.html
-/sdcard/android/layout_tests/dom/html/level2/html/table06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLHeadElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement19.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement84.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/table39.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAnchorElement13.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/hasFeature01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement23.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement38.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement118.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement34.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBaseFontElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement24.html
-/sdcard/android/layout_tests/dom/html/level2/html/button07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement67.html
-/sdcard/android/layout_tests/dom/html/level2/html/table42.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement19.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLCollection09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFrameElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement121.html
-/sdcard/android/layout_tests/dom/html/level2/html/dlist01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement17.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFormElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument19.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement70.html
-/sdcard/android/layout_tests/dom/html/level2/html/table25.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLMenuElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFontElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLIFrameElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLCollection12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement24.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLinkElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement104.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement20.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLMetaElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument22.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement137.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLHRElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement53.html
-/sdcard/android/layout_tests/dom/html/level2/html/table08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableColElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement86.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/hasFeature03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement25.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement140.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLButtonElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement36.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBaseFontElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFrameSetElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement26.html
-/sdcard/android/layout_tests/dom/html/level2/html/button09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement69.html
-/sdcard/android/layout_tests/dom/html/level2/html/table44.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement13.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFrameElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement123.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement19.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLParamElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFormElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAreaElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement72.html
-/sdcard/android/layout_tests/dom/html/level2/html/table27.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLIFrameElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAnchorElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/anchor01.html
-/sdcard/android/layout_tests/dom/html/level2/html/object08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement26.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement106.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLinkElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement22.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLMetaElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBodyElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/body01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument24.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement139.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLHRElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement55.html
-/sdcard/android/layout_tests/dom/html/level2/html/table30.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLIFrameElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/object11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableColElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement88.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLHtmlElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLabelElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTitleElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/hasFeature05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement27.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement142.html
-/sdcard/android/layout_tests/dom/html/level2/html/doc01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBaseElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLButtonElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/AppletsCollection.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement38.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLIsIndexElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLModElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLImageElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement28.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement91.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement12.html
-/sdcard/android/layout_tests/dom/html/level2/html/table46.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement15.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAppletElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement30.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionsCollection02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFrameElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement125.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement41.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLParamElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFormElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAreaElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement31.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptGroupElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement74.html
-/sdcard/android/layout_tests/dom/html/level2/html/table29.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLIFrameElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAnchorElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/anchor03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement13.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement28.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLScriptElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement108.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement24.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBodyElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFormElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument26.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement14.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement57.html
-/sdcard/android/layout_tests/dom/html/level2/html/table32.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/object13.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableColElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement31.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement111.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLabelElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement29.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement144.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLButtonElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement60.html
-/sdcard/android/layout_tests/dom/html/level2/html/table15.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLegendElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLCollection02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLModElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLImageElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement93.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement14.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFieldSetElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/table48.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLIElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement17.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAppletElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionsCollection04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement127.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement43.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFormElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAreaElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement76.html
-/sdcard/android/layout_tests/dom/html/level2/html/table51.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement20.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAnchorElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/anchor05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement14.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement15.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement130.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLScriptElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement26.html
-/sdcard/android/layout_tests/dom/html/level2/html/table01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBodyElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement14.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement16.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement59.html
-/sdcard/android/layout_tests/dom/html/level2/html/table34.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLHeadingElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/area02.html
-/sdcard/android/layout_tests/dom/html/level2/html/object15.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableColElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement33.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement113.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLUListElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBRElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/button02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLButtonElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement62.html
-/sdcard/android/layout_tests/dom/html/level2/html/table17.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLegendElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement14.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLCollection04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLImageElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableColElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement95.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement16.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement19.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAppletElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionsCollection06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument14.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement129.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLMapElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement45.html
-/sdcard/android/layout_tests/dom/html/level2/html/table20.html
-/sdcard/android/layout_tests/dom/html/level2/html/object01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAreaElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement78.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLinkElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/table53.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement22.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAnchorElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement16.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement17.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement132.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLScriptElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement28.html
-/sdcard/android/layout_tests/dom/html/level2/html/table03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBodyElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement16.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement18.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement81.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/table36.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLHeadingElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAnchorElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/area04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement20.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement35.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement115.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDlistElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement31.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBodyElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLStyleElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement21.html
-/sdcard/android/layout_tests/dom/html/level2/html/button04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement64.html
-/sdcard/android/layout_tests/dom/html/level2/html/table19.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement16.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLCollection06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLImageElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFrameElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement97.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement18.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement14.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAppletElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument16.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement47.html
-/sdcard/android/layout_tests/dom/html/level2/html/table22.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLIFrameElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/object03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLImageElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement21.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOListElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLQuoteElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement101.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLinkElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement14.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAnchorElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAppletElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement18.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement19.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement134.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLScriptElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement50.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement18.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement83.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/table38.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLHeadingElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAnchorElement12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement21.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement22.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement37.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement117.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement33.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDirectoryElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement23.html
-/sdcard/android/layout_tests/dom/html/level2/html/button06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement66.html
-/sdcard/android/layout_tests/dom/html/level2/html/table41.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement18.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLCollection08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLImageElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement40.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFrameElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement99.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement120.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement16.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAppletElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFormElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument18.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement49.html
-/sdcard/android/layout_tests/dom/html/level2/html/table24.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLIFrameElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFontElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/object05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLCollection11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLImageElement12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement23.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOListElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement103.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLinkElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument21.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement136.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLHRElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement52.html
-/sdcard/android/layout_tests/dom/html/level2/html/table07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLSelectElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableColElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement85.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement09.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAnchorElement14.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/hasFeature02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement24.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement39.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement119.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement35.html
-/sdcard/android/layout_tests/dom/html/level2/html/table10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBaseFontElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement25.html
-/sdcard/android/layout_tests/dom/html/level2/html/button08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement68.html
-/sdcard/android/layout_tests/dom/html/level2/html/table43.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLInputElement12.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTextAreaElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableRowElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFrameElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement122.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement18.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFormElement04.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLAreaElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLObjectElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement71.html
-/sdcard/android/layout_tests/dom/html/level2/html/table26.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLIFrameElement06.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLFontElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/object07.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableCellElement10.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableElement25.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement105.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLLinkElement08.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLOptionElement05.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement21.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLMetaElement02.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLBodyElement01.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLDocument23.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement138.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLHRElement03.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLTableSectionElement11.html
-/sdcard/android/layout_tests/dom/html/level2/html/HTMLElement54.html
-/sdcard/android/layout_tests/dom/html/level2/html/table09.html
-/sdcard/android/layout_tests/dom/html/level2/html/object10.html
-/sdcard/android/layout_tests/dom/html/level2/core/hc_notationsremovenameditemns1.html
-/sdcard/android/layout_tests/dom/html/level2/core/hc_entitiessetnameditemns1.html
-/sdcard/android/layout_tests/dom/html/level2/core/setAttributeNS10.html
-/sdcard/android/layout_tests/dom/html/level2/core/hc_nodedocumentfragmentnormalize2.html
-/sdcard/android/layout_tests/dom/html/level2/core/hc_namednodemapinvalidtype1.html
-/sdcard/android/layout_tests/dom/html/level2/core/createAttributeNS06.html
-/sdcard/android/layout_tests/dom/html/level2/core/createDocumentType04.html
-/sdcard/android/layout_tests/dom/html/level2/core/hc_notationssetnameditemns1.html
-/sdcard/android/layout_tests/dom/html/level2/core/hc_entitiesremovenameditemns1.html
-/sdcard/android/layout_tests/dom/html/level2/core/hc_nodedocumentfragmentnormalize1.html
-/sdcard/android/layout_tests/dom/html/level2/core/createDocument08.html
-/sdcard/android/layout_tests/editing/style/temporary-span-crash.html
-/sdcard/android/layout_tests/editing/style/4230923.html
-/sdcard/android/layout_tests/editing/style/textdecoration-outside-of-unsplittable-element.html
-/sdcard/android/layout_tests/editing/style/textdecoration-outside-of-rooteditable.html
-/sdcard/android/layout_tests/editing/style/highlight-insert-paragraph.html
-/sdcard/android/layout_tests/editing/inserting/6609479-1.html
-/sdcard/android/layout_tests/editing/inserting/6609479.html
-/sdcard/android/layout_tests/editing/inserting/5549929-1.html
-/sdcard/android/layout_tests/editing/inserting/font-size-clears-from-typing-style.html
-/sdcard/android/layout_tests/editing/inserting/6104369.html
-/sdcard/android/layout_tests/editing/inserting/return-with-object-element.html
-/sdcard/android/layout_tests/editing/inserting/5803706-2.html
-/sdcard/android/layout_tests/editing/inserting/5685601-2.html
-/sdcard/android/layout_tests/editing/inserting/5607069-1.html
-/sdcard/android/layout_tests/editing/inserting/insert-br-quoted-007.html
-/sdcard/android/layout_tests/editing/inserting/5803706-1.html
-/sdcard/android/layout_tests/editing/inserting/5685601-1.html
-/sdcard/android/layout_tests/editing/inserting/5994480.html
-/sdcard/android/layout_tests/editing/inserting/6104369-2.html
-/sdcard/android/layout_tests/editing/inserting/insert-before-link-1.html
-/sdcard/android/layout_tests/editing/inserting/5378847.html
-/sdcard/android/layout_tests/editing/inserting/5685601-3.html
-/sdcard/android/layout_tests/editing/inserting/6703873-2.html
-/sdcard/android/layout_tests/editing/execCommand/toggle-style-2.html
-/sdcard/android/layout_tests/editing/execCommand/19403.html
-/sdcard/android/layout_tests/editing/execCommand/indent-nested-div.html
-/sdcard/android/layout_tests/editing/execCommand/25256.html
-/sdcard/android/layout_tests/editing/execCommand/default-parameters.html
-/sdcard/android/layout_tests/editing/execCommand/5120591.html
-/sdcard/android/layout_tests/editing/execCommand/19455.html
-/sdcard/android/layout_tests/editing/execCommand/19087.html
-/sdcard/android/layout_tests/editing/execCommand/5543472-3.html
-/sdcard/android/layout_tests/editing/execCommand/5207369.html
-/sdcard/android/layout_tests/editing/execCommand/empty-span-removal.html
-/sdcard/android/layout_tests/editing/execCommand/4916583.html
-/sdcard/android/layout_tests/editing/execCommand/5658933-2.html
-/sdcard/android/layout_tests/editing/execCommand/5469868.html
-/sdcard/android/layout_tests/editing/execCommand/insert-list-with-id.html
-/sdcard/android/layout_tests/editing/execCommand/indent-div-inside-list.html
-/sdcard/android/layout_tests/editing/execCommand/5575101-1.html
-/sdcard/android/layout_tests/editing/execCommand/5432254-1.html
-/sdcard/android/layout_tests/editing/execCommand/indent-nested-blockquotes.html
-/sdcard/android/layout_tests/editing/execCommand/5062376.html
-/sdcard/android/layout_tests/editing/execCommand/indent-second-paragraph-in-blockquote.html
-/sdcard/android/layout_tests/editing/execCommand/findString-3.html
-/sdcard/android/layout_tests/editing/execCommand/toggle-text-decorations.html
-/sdcard/android/layout_tests/editing/execCommand/5142012-3.html
-/sdcard/android/layout_tests/editing/execCommand/indent-empty-table-cell.html
-/sdcard/android/layout_tests/editing/execCommand/5700414-1.html
-/sdcard/android/layout_tests/editing/execCommand/16049.html
-/sdcard/android/layout_tests/editing/execCommand/19653-1.html
-/sdcard/android/layout_tests/editing/execCommand/arguments-combinations.html
-/sdcard/android/layout_tests/editing/execCommand/5685604-1.html
-/sdcard/android/layout_tests/editing/execCommand/4128080-1.html
-/sdcard/android/layout_tests/editing/execCommand/5575101-3.html
-/sdcard/android/layout_tests/editing/execCommand/5119244.html
-/sdcard/android/layout_tests/editing/execCommand/5543472-2.html
-/sdcard/android/layout_tests/editing/execCommand/inline-style-after-indentoutdent.html
-/sdcard/android/layout_tests/editing/execCommand/5770834-1.html
-/sdcard/android/layout_tests/editing/execCommand/5483526.html
-/sdcard/android/layout_tests/editing/execCommand/5658933-1.html
-/sdcard/android/layout_tests/editing/execCommand/5164796.html
-/sdcard/android/layout_tests/editing/execCommand/6355786.html
-/sdcard/android/layout_tests/editing/execCommand/5604313.html
-/sdcard/android/layout_tests/editing/execCommand/19653-3.html
-/sdcard/android/layout_tests/editing/execCommand/outdent-regular-blockquote.html
-/sdcard/android/layout_tests/editing/execCommand/6444148.html
-/sdcard/android/layout_tests/editing/execCommand/5763082.html
-/sdcard/android/layout_tests/editing/execCommand/4976800.html
-/sdcard/android/layout_tests/editing/execCommand/4928635.html
-/sdcard/android/layout_tests/editing/execCommand/list-wrapping-image-crash.html
-/sdcard/android/layout_tests/editing/execCommand/4920742-2.html
-/sdcard/android/layout_tests/editing/execCommand/4917055.html
-/sdcard/android/layout_tests/editing/execCommand/5658933-3.html
-/sdcard/android/layout_tests/editing/execCommand/5575101-2.html
-/sdcard/android/layout_tests/editing/execCommand/5432254-2.html
-/sdcard/android/layout_tests/editing/execCommand/5144139-1.html
-/sdcard/android/layout_tests/editing/execCommand/5543472-1.html
-/sdcard/android/layout_tests/editing/execCommand/25320.html
-/sdcard/android/layout_tests/editing/execCommand/5210032.html
-/sdcard/android/layout_tests/editing/execCommand/12244.html
-/sdcard/android/layout_tests/editing/execCommand/15381.html
-/sdcard/android/layout_tests/editing/execCommand/5700414-2.html
-/sdcard/android/layout_tests/editing/execCommand/19653-2.html
-/sdcard/android/layout_tests/editing/execCommand/boldSelection.html
-/sdcard/android/layout_tests/editing/execCommand/4916235.html
-/sdcard/android/layout_tests/editing/execCommand/5458246.html
-/sdcard/android/layout_tests/editing/execCommand/toggle-styles.html
-/sdcard/android/layout_tests/editing/pasteboard/5761530-2.html
-/sdcard/android/layout_tests/editing/pasteboard/6018653.html
-/sdcard/android/layout_tests/editing/pasteboard/4930986-1.html
-/sdcard/android/layout_tests/editing/pasteboard/5780697-1.html
-/sdcard/android/layout_tests/editing/pasteboard/copy-crash-with-extraneous-attribute.html
-/sdcard/android/layout_tests/editing/pasteboard/4930986-3.html
-/sdcard/android/layout_tests/editing/pasteboard/5245519.html
-/sdcard/android/layout_tests/editing/pasteboard/copy-display-none.html
-/sdcard/android/layout_tests/editing/pasteboard/5521237.html
-/sdcard/android/layout_tests/editing/pasteboard/newlines-around-floating-or-positioned.html
-/sdcard/android/layout_tests/editing/pasteboard/5078739.html
-/sdcard/android/layout_tests/editing/pasteboard/createMarkup-assert.xml
-/sdcard/android/layout_tests/editing/pasteboard/4930986-2.html
-/sdcard/android/layout_tests/editing/pasteboard/4840662.html
-/sdcard/android/layout_tests/editing/pasteboard/5480736.html
-/sdcard/android/layout_tests/editing/selection/5825350-1.html
-/sdcard/android/layout_tests/editing/selection/selection-invalid-offset.html
-/sdcard/android/layout_tests/editing/selection/move-by-line-005.html
-/sdcard/android/layout_tests/editing/selection/rangeCount.html
-/sdcard/android/layout_tests/editing/selection/containsNode.html
-/sdcard/android/layout_tests/editing/selection/selectAllChildren.html
-/sdcard/android/layout_tests/editing/selection/cleared-by-relayout.html
-/sdcard/android/layout_tests/editing/selection/extend-selection.html
-/sdcard/android/layout_tests/editing/selection/5825350-2.html
-/sdcard/android/layout_tests/editing/selection/5794920-1.html
-/sdcard/android/layout_tests/editing/selection/deleteFromDocument.html
-/sdcard/android/layout_tests/editing/selection/5497643.html
-/sdcard/android/layout_tests/editing/selection/setBaseAndExtent-revert-selection.html
-/sdcard/android/layout_tests/editing/selection/crash-on-drag-with-mutation-events.html
-/sdcard/android/layout_tests/editing/selection/5714333.html
-/sdcard/android/layout_tests/editing/selection/select-all-user-select-none.html
-/sdcard/android/layout_tests/editing/selection/thai-word-at-document-end.html
-/sdcard/android/layout_tests/editing/selection/extend.html
-/sdcard/android/layout_tests/editing/selection/5241148.html
-/sdcard/android/layout_tests/editing/selection/5213963.html
-/sdcard/android/layout_tests/editing/selection/move-by-line-004.html
-/sdcard/android/layout_tests/editing/selection/extend-by-line-anonymous-content-crash.html
-/sdcard/android/layout_tests/editing/selection/5779984-1.html
-/sdcard/android/layout_tests/editing/undo/4059423-1.html
-/sdcard/android/layout_tests/editing/undo/4059423-2.html
-/sdcard/android/layout_tests/editing/undo/5658727.html
-/sdcard/android/layout_tests/editing/undo/5738768.html
-/sdcard/android/layout_tests/editing/deleting/25322-2.html
-/sdcard/android/layout_tests/editing/deleting/2610675-2.html
-/sdcard/android/layout_tests/editing/deleting/5847330-2.html
-/sdcard/android/layout_tests/editing/deleting/5156801.html
-/sdcard/android/layout_tests/editing/deleting/4866671.html
-/sdcard/android/layout_tests/editing/deleting/type-delete-after-quote-2.html
-/sdcard/android/layout_tests/editing/deleting/25322-1.html
-/sdcard/android/layout_tests/editing/deleting/merge-at-end-of-document.html
-/sdcard/android/layout_tests/editing/deleting/6026335.html
-/sdcard/android/layout_tests/editing/deleting/2610675-1.html
-/sdcard/android/layout_tests/editing/deleting/5847330-1.html
-/sdcard/android/layout_tests/editing/deleting/5433862-1.html
-/sdcard/android/layout_tests/editing/deleting/5495723.html
-/sdcard/android/layout_tests/editing/deleting/5290534.html
-/sdcard/android/layout_tests/editing/deleting/removeNodeCommand-assert.html
-/sdcard/android/layout_tests/editing/deleting/25322-3.html
-/sdcard/android/layout_tests/editing/deleting/2610675-3.html
-/sdcard/android/layout_tests/editing/deleting/5890684.html
-/sdcard/android/layout_tests/editing/deleting/in-visibly-empty-root.html
-/sdcard/android/layout_tests/editing/deleting/4875189.html
-/sdcard/android/layout_tests/fast/media/matchmedium-query-api.html
-/sdcard/android/layout_tests/fast/replaced/object-param-no-name.html
-/sdcard/android/layout_tests/fast/ruby/parse-rp.html
-/sdcard/android/layout_tests/fast/dynamic/subtree-common-root.html
-/sdcard/android/layout_tests/fast/dynamic/hovered-detach.html
-/sdcard/android/layout_tests/fast/dynamic/insertAdjacentHTML.html
-/sdcard/android/layout_tests/fast/dynamic/style-access-late-stylesheet-load.html
-/sdcard/android/layout_tests/fast/dynamic/insertAdjacentText.html
-/sdcard/android/layout_tests/fast/dynamic/insertAdjacentHTML-allowed-parents.html
-/sdcard/android/layout_tests/fast/dynamic/checkbox-selection-crash.html
-/sdcard/android/layout_tests/fast/dynamic/outerHTML-no-element.html
-/sdcard/android/layout_tests/fast/dynamic/5872671.html
-/sdcard/android/layout_tests/fast/dynamic/ancestor-to-absolute.html
-/sdcard/android/layout_tests/fast/dynamic/float-remove-above-line.html
-/sdcard/android/layout_tests/fast/dynamic/recursive-layout.html
-/sdcard/android/layout_tests/fast/dynamic/inline-to-block-crash.html
-/sdcard/android/layout_tests/fast/text/whitespace/nowrap-line-break-after-white-space.html
-/sdcard/android/layout_tests/fast/text/find-backwards.html
-/sdcard/android/layout_tests/fast/text/large-text-composed-char-dos.html
-/sdcard/android/layout_tests/fast/text/find-quotes.html
-/sdcard/android/layout_tests/fast/text/find-case-folding.html
-/sdcard/android/layout_tests/fast/text/text-shadow-extreme-value.html
-/sdcard/android/layout_tests/fast/text/find-hidden-text.html
-/sdcard/android/layout_tests/fast/text/line-breaks-after-ideographic-comma-or-full-stop.html
-/sdcard/android/layout_tests/fast/text/find-spaces.html
-/sdcard/android/layout_tests/fast/text/text-large-negative-letter-spacing-with-opacity.html
-/sdcard/android/layout_tests/fast/encoding/gbk/chinese.html
-/sdcard/android/layout_tests/fast/encoding/gbk/x-euc-cn.html
-/sdcard/android/layout_tests/fast/encoding/gbk/gb_2312-80.html
-/sdcard/android/layout_tests/fast/encoding/gbk/cn-gb.html
-/sdcard/android/layout_tests/fast/encoding/gbk/csgb2312.html
-/sdcard/android/layout_tests/fast/encoding/gbk/iso-ir-58.html
-/sdcard/android/layout_tests/fast/encoding/gbk/csgb231280.html
-/sdcard/android/layout_tests/fast/encoding/gbk/gb2312.html
-/sdcard/android/layout_tests/fast/encoding/gbk/gbk.html
-/sdcard/android/layout_tests/fast/encoding/gbk/x-gbk.html
-/sdcard/android/layout_tests/fast/encoding/gbk/EUC-CN.html
-/sdcard/android/layout_tests/fast/encoding/gbk/close-gbk-converter.html
-/sdcard/android/layout_tests/fast/encoding/hebrew/hebrew.html
-/sdcard/android/layout_tests/fast/encoding/hebrew/csISO88598I.html
-/sdcard/android/layout_tests/fast/encoding/hebrew/8859-8.html
-/sdcard/android/layout_tests/fast/encoding/hebrew/8859-8-e.html
-/sdcard/android/layout_tests/fast/encoding/hebrew/8859-8-i.html
-/sdcard/android/layout_tests/fast/encoding/hebrew/logical.html
-/sdcard/android/layout_tests/fast/encoding/hebrew/iso-ir-138.html
-/sdcard/android/layout_tests/fast/encoding/pseudo-xml-4.html
-/sdcard/android/layout_tests/fast/encoding/no-charset-on-dynamic-script-load.html
-/sdcard/android/layout_tests/fast/encoding/utf-32-little-endian-bom.html
-/sdcard/android/layout_tests/fast/encoding/bandai-co-jp-releases.html
-/sdcard/android/layout_tests/fast/encoding/utf-32-big-endian-bom.html
-/sdcard/android/layout_tests/fast/encoding/css-charset-evil.html
-/sdcard/android/layout_tests/fast/encoding/css-charset.html
-/sdcard/android/layout_tests/fast/encoding/xml-charset-utf16.html
-/sdcard/android/layout_tests/fast/encoding/pseudo-xml-3.html
-/sdcard/android/layout_tests/fast/encoding/tag-in-title.html
-/sdcard/android/layout_tests/fast/encoding/noscript-in-head.html
-/sdcard/android/layout_tests/fast/encoding/css-cached-bom.html
-/sdcard/android/layout_tests/fast/encoding/preload-encoding.html
-/sdcard/android/layout_tests/fast/encoding/charset-invalid.html
-/sdcard/android/layout_tests/fast/encoding/pseudo-tags-in-attributes.html
-/sdcard/android/layout_tests/fast/encoding/decoder-allow-null-chars.html
-/sdcard/android/layout_tests/fast/encoding/css-charset-dom.html
-/sdcard/android/layout_tests/fast/encoding/charset-utf16.html
-/sdcard/android/layout_tests/fast/encoding/char-encoding.html
-/sdcard/android/layout_tests/fast/encoding/css-link-charset.html
-/sdcard/android/layout_tests/fast/encoding/latin1-winlatin.html
-/sdcard/android/layout_tests/fast/encoding/high-bit-latin1.html
-/sdcard/android/layout_tests/fast/encoding/bom-in-content.html
-/sdcard/android/layout_tests/fast/encoding/bom-in-content-utf16.html
-/sdcard/android/layout_tests/fast/encoding/namespace-tolerance.html
-/sdcard/android/layout_tests/fast/encoding/misplaced-xml-declaration.html
-/sdcard/android/layout_tests/fast/encoding/euckr-name.html
-/sdcard/android/layout_tests/fast/encoding/charset-xuser-defined.html
-/sdcard/android/layout_tests/fast/encoding/pseudo-xml-2.html
-/sdcard/android/layout_tests/fast/encoding/floraexpress-ru.html
-/sdcard/android/layout_tests/fast/encoding/charset-cp1251.html
-/sdcard/android/layout_tests/fast/encoding/charset-unicode.html
-/sdcard/android/layout_tests/fast/encoding/meta-charset.html
-/sdcard/android/layout_tests/fast/encoding/xml-utf-8-default.xml
-/sdcard/android/layout_tests/fast/encoding/pseudo-xml.html
-/sdcard/android/layout_tests/fast/encoding/yahoo-mail.html
-/sdcard/android/layout_tests/fast/encoding/ahram-org-eg.html
-/sdcard/android/layout_tests/fast/encoding/script-in-head.html
-/sdcard/android/layout_tests/fast/encoding/mispositioned-meta.html
-/sdcard/android/layout_tests/fast/multicol/gap-non-negative.html
-/sdcard/android/layout_tests/fast/multicol/content-height-zero-crash.html
-/sdcard/android/layout_tests/fast/doctypes/doctype-at-end.html
-/sdcard/android/layout_tests/fast/doctypes/005-case-preserving.html
-/sdcard/android/layout_tests/fast/doctypes/doctype-in-element.html
-/sdcard/android/layout_tests/fast/doctypes/doctype-after-comment.html
-/sdcard/android/layout_tests/fast/doctypes/doctype-parsing.html
-/sdcard/android/layout_tests/fast/doctypes/html-doctype.html
-/sdcard/android/layout_tests/fast/cookies/local-file-can-set-cookies.html
-/sdcard/android/layout_tests/fast/css-generated-content/empty-content-with-float-crash.html
-/sdcard/android/layout_tests/fast/css-generated-content/reset-content-to-initial.html
-/sdcard/android/layout_tests/fast/workers/worker-close.html
-/sdcard/android/layout_tests/fast/workers/worker-context-gc.html
-/sdcard/android/layout_tests/fast/workers/worker-constructor.html
-/sdcard/android/layout_tests/fast/workers/worker-timeout.html
-/sdcard/android/layout_tests/fast/workers/worker-messageport.html
-/sdcard/android/layout_tests/fast/workers/worker-gc.html
-/sdcard/android/layout_tests/fast/workers/worker-replace-self.html
-/sdcard/android/layout_tests/fast/workers/worker-event-listener.html
-/sdcard/android/layout_tests/fast/workers/worker-cloneport.html
-/sdcard/android/layout_tests/fast/workers/worker-call.html
-/sdcard/android/layout_tests/fast/workers/worker-messageport-gc.html
-/sdcard/android/layout_tests/fast/workers/stress-js-execution.html
-/sdcard/android/layout_tests/fast/workers/worker-terminate.html
-/sdcard/android/layout_tests/fast/workers/use-machine-stack.html
-/sdcard/android/layout_tests/fast/workers/worker-navigator.html
-/sdcard/android/layout_tests/fast/workers/worker-script-error.html
-/sdcard/android/layout_tests/fast/workers/worker-replace-global-constructor.html
-/sdcard/android/layout_tests/fast/transforms/container-transform-crash.html
-/sdcard/android/layout_tests/fast/leaks/001.html
-/sdcard/android/layout_tests/fast/leaks/002.html
-/sdcard/android/layout_tests/fast/borders/border-radius-parsing.html
-/sdcard/android/layout_tests/fast/innerHTML/innerHTML-custom-tag.html
-/sdcard/android/layout_tests/fast/innerHTML/additional-inline-style.html
-/sdcard/android/layout_tests/fast/innerHTML/005.html
-/sdcard/android/layout_tests/fast/innerHTML/javascript-url.html
-/sdcard/android/layout_tests/fast/innerHTML/innerHTML-case.html
-/sdcard/android/layout_tests/fast/overflow/onscroll-layer-self-destruct.html
-/sdcard/android/layout_tests/fast/overflow/generated-content-crash.html
-/sdcard/android/layout_tests/fast/overflow/overflow-y-scroll.html
-/sdcard/android/layout_tests/fast/events/dispatch-to-handle-event.html
-/sdcard/android/layout_tests/fast/events/scroll-during-zoom-change.html
-/sdcard/android/layout_tests/fast/events/scroll-event-does-not-bubble.html
-/sdcard/android/layout_tests/fast/events/onload-after-document-close-with-subresource.html
-/sdcard/android/layout_tests/fast/events/message-channel-gc-4.html
-/sdcard/android/layout_tests/fast/events/message-channel-listener-circular-ownership.html
-/sdcard/android/layout_tests/fast/events/message-port-constructor-for-deleted-document.html
-/sdcard/android/layout_tests/fast/events/dispatchEvent-crash.html
-/sdcard/android/layout_tests/fast/events/programmatic-check-no-change-event.html
-/sdcard/android/layout_tests/fast/events/message-port-inactive-document.html
-/sdcard/android/layout_tests/fast/events/onunload-body-property.html
-/sdcard/android/layout_tests/fast/events/event-trace.html
-/sdcard/android/layout_tests/fast/events/init-event-after-dispatch.html
-/sdcard/android/layout_tests/fast/events/delayed-style-mutation-event-crash.html
-/sdcard/android/layout_tests/fast/events/keydown-keypress-focus-change.html
-/sdcard/android/layout_tests/fast/events/no-blur-on-page-leave.html
-/sdcard/android/layout_tests/fast/events/onload-name-collision.html
-/sdcard/android/layout_tests/fast/events/div-focus.html
-/sdcard/android/layout_tests/fast/events/overflow-events.html
-/sdcard/android/layout_tests/fast/events/create-document-crash-on-attach-event.html
-/sdcard/android/layout_tests/fast/events/no-blur-on-enter-button.html
-/sdcard/android/layout_tests/fast/events/keypress-removed-node.html
-/sdcard/android/layout_tests/fast/events/shadow-boundary-crossing.html
-/sdcard/android/layout_tests/fast/events/submit-reset-nested-bubble.html
-/sdcard/android/layout_tests/fast/events/message-port-deleted-frame.html
-/sdcard/android/layout_tests/fast/events/nested-event-remove-node-crash.html
-/sdcard/android/layout_tests/fast/events/onsubmit-bubbling.html
-/sdcard/android/layout_tests/fast/events/onload-fires-twice.html
-/sdcard/android/layout_tests/fast/events/message-port-no-wrapper.html
-/sdcard/android/layout_tests/fast/events/mousedown_in_scrollbar.html
-/sdcard/android/layout_tests/fast/events/onload-single-line-comment.html
-/sdcard/android/layout_tests/fast/events/message-channel-gc-2.html
-/sdcard/android/layout_tests/fast/events/window-load-capture.html
-/sdcard/android/layout_tests/fast/events/message-port-deleted-document.html
-/sdcard/android/layout_tests/fast/events/event-instanceof.html
-/sdcard/android/layout_tests/fast/events/message-channel-gc.html
-/sdcard/android/layout_tests/fast/events/event-creation.html
-/sdcard/android/layout_tests/fast/events/event-listener-sharing.html
-/sdcard/android/layout_tests/fast/events/caller-access-from-event-listener.html
-/sdcard/android/layout_tests/fast/events/stopPropagation-submit.html
-/sdcard/android/layout_tests/fast/events/remove-event-listener.html
-/sdcard/android/layout_tests/fast/events/mouseup-outside-button.html
-/sdcard/android/layout_tests/fast/events/iframe-object-onload.html
-/sdcard/android/layout_tests/fast/events/no-window-load.html
-/sdcard/android/layout_tests/fast/events/event-listener-html-non-html-confusion.html
-/sdcard/android/layout_tests/fast/events/onerror-bubbling.html
-/sdcard/android/layout_tests/fast/events/keydown-remove-frame.html
-/sdcard/android/layout_tests/fast/events/message-channel-gc-3.html
-/sdcard/android/layout_tests/fast/events/event-targets.html
-/sdcard/android/layout_tests/fast/events/space-scroll-event.html
-/sdcard/android/layout_tests/fast/events/onload-after-document-close-no-subresource.html
-/sdcard/android/layout_tests/fast/events/nested-window-event.html
-/sdcard/android/layout_tests/fast/events/selectstart-during-autoscroll.html
-/sdcard/android/layout_tests/fast/events/stopPropagation-checkbox.html
-/sdcard/android/layout_tests/fast/events/message-port-clone.html
-/sdcard/android/layout_tests/fast/events/tab-crash-with-image-map.html
-/sdcard/android/layout_tests/fast/events/simulated-key-state.html
-/sdcard/android/layout_tests/fast/events/init-event-null-view.html
-/sdcard/android/layout_tests/fast/events/init-events.html
-/sdcard/android/layout_tests/fast/events/onunload-window-property.html
-/sdcard/android/layout_tests/fast/events/message-port.html
-/sdcard/android/layout_tests/fast/html/tab-order.html
-/sdcard/android/layout_tests/fast/html/xhtml-serialize.html
-/sdcard/android/layout_tests/fast/html/empty-fragment-id-goto-top.html
-/sdcard/android/layout_tests/fast/html/script-allowed-types-languages.html
-/sdcard/android/layout_tests/fast/html/text-field-input-types.html
-/sdcard/android/layout_tests/fast/html/draggable.html
-/sdcard/android/layout_tests/fast/html/body-offset-properties.html
-/sdcard/android/layout_tests/fast/images/image-empty-data.html
-/sdcard/android/layout_tests/fast/images/text-content-crash.html
-/sdcard/android/layout_tests/fast/images/border.html
-/sdcard/android/layout_tests/fast/images/animated-background-image-crash.html
-/sdcard/android/layout_tests/fast/images/load-img-with-empty-src.html
-/sdcard/android/layout_tests/fast/images/text-content-crash-2.html
-/sdcard/android/layout_tests/fast/inspector/cssURLQuotes.html
-/sdcard/android/layout_tests/fast/flexbox/repaint-scrollbar.html
-/sdcard/android/layout_tests/fast/flexbox/inline-children-crash.html
-/sdcard/android/layout_tests/fast/tokenizer/nested-cached-scripts.html
-/sdcard/android/layout_tests/fast/tokenizer/image-empty-crash.html
-/sdcard/android/layout_tests/fast/tokenizer/lessthan-terminates-tags-and-attrs.html
-/sdcard/android/layout_tests/fast/tokenizer/ignore-tags-in-iframe.html
-/sdcard/android/layout_tests/fast/tokenizer/write-partial-entity.html
-/sdcard/android/layout_tests/fast/tokenizer/external-script-document-open.html
-/sdcard/android/layout_tests/fast/tokenizer/004.html
-/sdcard/android/layout_tests/fast/tokenizer/write-inline-script-open.html
-/sdcard/android/layout_tests/fast/tokenizer/write-external-script-open.html
-/sdcard/android/layout_tests/fast/tokenizer/doctype-search-reset.html
-/sdcard/android/layout_tests/fast/tokenizer/nested-multiple-scripts.html
-/sdcard/android/layout_tests/fast/tokenizer/nested-cached-scripts-and-stylesheet.html
-/sdcard/android/layout_tests/fast/tokenizer/ampersand-in-special-tag.html
-/sdcard/android/layout_tests/fast/tokenizer/write-unclosed-script.html
-/sdcard/android/layout_tests/fast/tokenizer/badscript.html
-/sdcard/android/layout_tests/fast/regex/quantified-assertions.html
-/sdcard/android/layout_tests/fast/regex/non-pattern-characters.html
-/sdcard/android/layout_tests/fast/regex/malformed-escapes.html
-/sdcard/android/layout_tests/fast/regex/early-acid3-86.html
-/sdcard/android/layout_tests/fast/regex/alternative-length-miscalculation.html
-/sdcard/android/layout_tests/fast/regex/test4.html
-/sdcard/android/layout_tests/fast/regex/non-capturing-backtracking.html
-/sdcard/android/layout_tests/fast/box-shadow/box-shadow-overflow-scroll.html
-/sdcard/android/layout_tests/fast/js/kde/Boolean.html
-/sdcard/android/layout_tests/fast/js/kde/garbage-n.html
-/sdcard/android/layout_tests/fast/js/kde/function.html
-/sdcard/android/layout_tests/fast/js/kde/function_length.html
-/sdcard/android/layout_tests/fast/js/kde/const.html
-/sdcard/android/layout_tests/fast/js/kde/constructor_length.html
-/sdcard/android/layout_tests/fast/js/kde/statements.html
-/sdcard/android/layout_tests/fast/js/kde/math.html
-/sdcard/android/layout_tests/fast/js/kde/assignments.html
-/sdcard/android/layout_tests/fast/js/kde/crash-1.html
-/sdcard/android/layout_tests/fast/js/kde/delete.html
-/sdcard/android/layout_tests/fast/js/kde/var_decl_init.html
-/sdcard/android/layout_tests/fast/js/kde/literals.html
-/sdcard/android/layout_tests/fast/js/kde/eval.html
-/sdcard/android/layout_tests/fast/js/kde/j-comment-3.html
-/sdcard/android/layout_tests/fast/js/kde/StringObject.html
-/sdcard/android/layout_tests/fast/js/kde/crash-2.html
-/sdcard/android/layout_tests/fast/js/kde/exception_propagation.html
-/sdcard/android/layout_tests/fast/js/kde/conditional.html
-/sdcard/android/layout_tests/fast/js/kde/scope.html
-/sdcard/android/layout_tests/fast/js/kde/parse.html
-/sdcard/android/layout_tests/fast/js/kde/function_arguments.html
-/sdcard/android/layout_tests/fast/js/kde/arguments-scope.html
-/sdcard/android/layout_tests/fast/js/kde/lval-exceptions.html
-/sdcard/android/layout_tests/fast/js/kde/operators.html
-/sdcard/android/layout_tests/fast/js/kde/Array.html
-/sdcard/android/layout_tests/fast/js/kde/md5-1.html
-/sdcard/android/layout_tests/fast/js/kde/object_prototype_tostring.html
-/sdcard/android/layout_tests/fast/js/kde/Date-setYear.html
-/sdcard/android/layout_tests/fast/js/kde/GlobalObject.html
-/sdcard/android/layout_tests/fast/js/kde/prototype_proto.html
-/sdcard/android/layout_tests/fast/js/kde/evil-n.html
-/sdcard/android/layout_tests/fast/js/kde/RegExp.html
-/sdcard/android/layout_tests/fast/js/kde/cast.html
-/sdcard/android/layout_tests/fast/js/kde/j-comment-4.html
-/sdcard/android/layout_tests/fast/js/kde/iteration.html
-/sdcard/android/layout_tests/fast/js/kde/comment-1.html
-/sdcard/android/layout_tests/fast/js/kde/string-2-n.html
-/sdcard/android/layout_tests/fast/js/kde/Prototype.html
-/sdcard/android/layout_tests/fast/js/kde/completion.html
-/sdcard/android/layout_tests/fast/js/kde/encode_decode_uri.html
-/sdcard/android/layout_tests/fast/js/kde/exceptions.html
-/sdcard/android/layout_tests/fast/js/kde/md5-2.html
-/sdcard/android/layout_tests/fast/js/kde/Error.html
-/sdcard/android/layout_tests/fast/js/kde/function_constructor.html
-/sdcard/android/layout_tests/fast/js/kde/object_prototype.html
-/sdcard/android/layout_tests/fast/js/kde/empty.html
-/sdcard/android/layout_tests/fast/js/kde/inbuilt_function_proto.html
-/sdcard/android/layout_tests/fast/js/kde/string-1-n.html
-/sdcard/android/layout_tests/fast/js/kde/func-decl.html
-/sdcard/android/layout_tests/fast/js/kde/comment-2.html
-/sdcard/android/layout_tests/fast/js/kde/inbuilt_function_tostring.html
-/sdcard/android/layout_tests/fast/js/kde/Object.html
-/sdcard/android/layout_tests/fast/js/kde/prototype_length.html
-/sdcard/android/layout_tests/fast/js/pic/cached-single-entry-transition.html
-/sdcard/android/layout_tests/fast/js/pic/cached-prototype-setter.html
-/sdcard/android/layout_tests/fast/js/pic/get-empty-string.html
-/sdcard/android/layout_tests/fast/js/pic/get-set-proxy-object.html
-/sdcard/android/layout_tests/fast/js/pic/rehash-poisons-structure.html
-/sdcard/android/layout_tests/fast/js/pic/cached-array-length-access.html
-/sdcard/android/layout_tests/fast/js/pic/cached-prototype-then-immediate.html
-/sdcard/android/layout_tests/fast/js/pic/cached-getter-setter.html
-/sdcard/android/layout_tests/fast/js/pic/cached-getter-dictionary-and-proto.html
-/sdcard/android/layout_tests/fast/js/pic/delete-global-object.html
-/sdcard/android/layout_tests/fast/js/pic/cached-deleted-properties.html
-/sdcard/android/layout_tests/fast/js/pic/dictionary-prototype.html
-/sdcard/android/layout_tests/fast/js/bitwise-and-on-undefined.html
-/sdcard/android/layout_tests/fast/js/exception-sequencing-binops.html
-/sdcard/android/layout_tests/fast/js/exception-thrown-from-eval-inside-closure.html
-/sdcard/android/layout_tests/fast/js/recursion-limit-equal.html
-/sdcard/android/layout_tests/fast/js/string_replace.html
-/sdcard/android/layout_tests/fast/js/ignored-result-ref-crash.html
-/sdcard/android/layout_tests/fast/js/function-toString-object-literals.html
-/sdcard/android/layout_tests/fast/js/numeric-conversion.html
-/sdcard/android/layout_tests/fast/js/select-options-remove.html
-/sdcard/android/layout_tests/fast/js/array-tostring-ignore-separator.html
-/sdcard/android/layout_tests/fast/js/exception-sequencing-binops2.html
-/sdcard/android/layout_tests/fast/js/function-declaration.html
-/sdcard/android/layout_tests/fast/js/number-toExponential.html
-/sdcard/android/layout_tests/fast/js/direct-entry-to-function-code.html
-/sdcard/android/layout_tests/fast/js/number-parsing-crash.html
-/sdcard/android/layout_tests/fast/js/vardecl-preserve-vardecl.html
-/sdcard/android/layout_tests/fast/js/unexpected-constant-crash.html
-/sdcard/android/layout_tests/fast/js/var-shadows-arg-gc-crash.html
-/sdcard/android/layout_tests/fast/js/arguments-bad-index.html
-/sdcard/android/layout_tests/fast/js/resize-array-assign.html
-/sdcard/android/layout_tests/fast/js/number-toString.html
-/sdcard/android/layout_tests/fast/js/this-non-object-proto.html
-/sdcard/android/layout_tests/fast/js/exception-thrown-from-new.html
-/sdcard/android/layout_tests/fast/js/cyclic-proto.html
-/sdcard/android/layout_tests/fast/js/vardecl-preserve-arguments.html
-/sdcard/android/layout_tests/fast/js/regexp-compile-crash.html
-/sdcard/android/layout_tests/fast/js/var-declarations-shadowing.html
-/sdcard/android/layout_tests/fast/js/ignored-result-null-comparison-crash.html
-/sdcard/android/layout_tests/fast/js/array-sort-reentrance.html
-/sdcard/android/layout_tests/fast/js/toString-for-var-decl.html
-/sdcard/android/layout_tests/fast/js/string-slice-abnormal-values.html
-/sdcard/android/layout_tests/fast/js/exception-linenums-in-html-1.html
-/sdcard/android/layout_tests/fast/js/do-while-without-semicolon.html
-/sdcard/android/layout_tests/fast/js/object-prototype-toLocaleString.html
-/sdcard/android/layout_tests/fast/js/function-redefinition.html
-/sdcard/android/layout_tests/fast/js/function-name.html
-/sdcard/android/layout_tests/fast/js/logical-or-jless.html
-/sdcard/android/layout_tests/fast/js/regexp-non-character.html
-/sdcard/android/layout_tests/fast/js/JSON-parse.html
-/sdcard/android/layout_tests/fast/js/assign.html
-/sdcard/android/layout_tests/fast/js/for-in-avoid-duplicates.html
-/sdcard/android/layout_tests/fast/js/math-transforms.html
-/sdcard/android/layout_tests/fast/js/sort-stability.html
-/sdcard/android/layout_tests/fast/js/try-catch-crash.html
-/sdcard/android/layout_tests/fast/js/duplicate-param-gc-crash.html
-/sdcard/android/layout_tests/fast/js/regexp-stack-overflow.html
-/sdcard/android/layout_tests/fast/js/function-argument-evaluation-before-exception.html
-/sdcard/android/layout_tests/fast/js/number-toprecision.html
-/sdcard/android/layout_tests/fast/js/string-property-iteration.html
-/sdcard/android/layout_tests/fast/js/do-while-semicolon.html
-/sdcard/android/layout_tests/fast/js/regexp-divequal.html
-/sdcard/android/layout_tests/fast/js/named-function-expression.html
-/sdcard/android/layout_tests/fast/js/array-iterate-backwards.html
-/sdcard/android/layout_tests/fast/js/constructor-attributes.html
-/sdcard/android/layout_tests/fast/js/array-some.html
-/sdcard/android/layout_tests/fast/js/missing-title-end-tag-js.html
-/sdcard/android/layout_tests/fast/js/object-extra-comma.html
-/sdcard/android/layout_tests/fast/js/number-tofixed.html
-/sdcard/android/layout_tests/fast/js/function-declarations-in-switch-statement.html
-/sdcard/android/layout_tests/fast/js/regexp-extended-characters-crash.html
-/sdcard/android/layout_tests/fast/js/typeof-codegen-crash.html
-/sdcard/android/layout_tests/fast/js/array-indexof.html
-/sdcard/android/layout_tests/fast/js/mod-crash.html
-/sdcard/android/layout_tests/fast/js/eval-keyword-vs-function.html
-/sdcard/android/layout_tests/fast/js/debugger.html
-/sdcard/android/layout_tests/fast/js/rehash-assign.html
-/sdcard/android/layout_tests/fast/js/object-prototype-constructor.html
-/sdcard/android/layout_tests/fast/js/function-call-aliased.html
-/sdcard/android/layout_tests/fast/js/string-replace-exception-crash.html
-/sdcard/android/layout_tests/fast/js/date-big-setmonth.html
-/sdcard/android/layout_tests/fast/js/array-enumerators-functions.html
-/sdcard/android/layout_tests/fast/js/exception-linenums-in-html-2.html
-/sdcard/android/layout_tests/fast/js/select-options-add.html
-/sdcard/android/layout_tests/fast/js/toString-dontEnum.html
-/sdcard/android/layout_tests/fast/js/toString-elision-trailing-comma.html
-/sdcard/android/layout_tests/fast/js/regexp-negative-special-characters.html
-/sdcard/android/layout_tests/fast/js/getter-setter-gc.html
-/sdcard/android/layout_tests/fast/js/string-substr.html
-/sdcard/android/layout_tests/fast/js/for-in-var-scope.html
-/sdcard/android/layout_tests/fast/js/exec-state-marking.html
-/sdcard/android/layout_tests/fast/js/primitive-method-this.html
-/sdcard/android/layout_tests/fast/js/string-sort.html
-/sdcard/android/layout_tests/fast/js/for-in-cached.html
-/sdcard/android/layout_tests/fast/js/delete-getters-setters.html
-/sdcard/android/layout_tests/fast/js/const-without-initializer.html
-/sdcard/android/layout_tests/fast/js/function-apply-aliased.html
-/sdcard/android/layout_tests/fast/js/sparse-array.html
-/sdcard/android/layout_tests/fast/js/same-origin-subframe-about-blank.html
-/sdcard/android/layout_tests/fast/js/nested-function-scope.html
-/sdcard/android/layout_tests/fast/js/function-constructor-single-line-comment.html
-/sdcard/android/layout_tests/fast/js/JSON-stringify.html
-/sdcard/android/layout_tests/fast/js/uncaught-exception-line-number.html
-/sdcard/android/layout_tests/fast/js/const.html
-/sdcard/android/layout_tests/fast/js/reparsing-semicolon-insertion.html
-/sdcard/android/layout_tests/fast/js/regexp-non-capturing-groups.html
-/sdcard/android/layout_tests/fast/js/has-own-property.html
-/sdcard/android/layout_tests/fast/js/window-location-href-file-urls.html
-/sdcard/android/layout_tests/fast/js/regexp-extended-characters-more.html
-/sdcard/android/layout_tests/fast/js/prefix-syntax.html
-/sdcard/android/layout_tests/fast/js/exceptions-thrown-in-callbacks.html
-/sdcard/android/layout_tests/fast/js/exception-with-handler-inside-eval-with-dynamic-scope.html
-/sdcard/android/layout_tests/fast/js/for-in-exeception.html
-/sdcard/android/layout_tests/fast/js/array-lastIndexOf.html
-/sdcard/android/layout_tests/fast/js/modify-non-references.html
-/sdcard/android/layout_tests/fast/js/exception-for-nonobject.html
-/sdcard/android/layout_tests/fast/js/regexp-find-first-asserted.html
-/sdcard/android/layout_tests/fast/js/sort-randomly.html
-/sdcard/android/layout_tests/fast/js/array-indexing.html
-/sdcard/android/layout_tests/fast/js/registerCachingAcrossBranchTargets.html
-/sdcard/android/layout_tests/fast/js/regexp-caching.html
-/sdcard/android/layout_tests/fast/js/typeof-syntax.html
-/sdcard/android/layout_tests/fast/js/regexp-character-match-out-of-order.html
-/sdcard/android/layout_tests/fast/js/date-toisostring.html
-/sdcard/android/layout_tests/fast/js/function-call-register-allocation.html
-/sdcard/android/layout_tests/fast/js/arguments.html
-/sdcard/android/layout_tests/fast/js/constant-folding.html
-/sdcard/android/layout_tests/fast/js/activation-object-function-lifetime.html
-/sdcard/android/layout_tests/fast/js/array-filter.html
-/sdcard/android/layout_tests/fast/js/implicit-global-to-global-reentry.html
-/sdcard/android/layout_tests/fast/js/array-reduceRight.html
-/sdcard/android/layout_tests/fast/js/array-foreach.html
-/sdcard/android/layout_tests/fast/js/regexp-many-brackets.html
-/sdcard/android/layout_tests/fast/js/activation-proto.html
-/sdcard/android/layout_tests/fast/js/toString-overrides.html
-/sdcard/android/layout_tests/fast/js/regexp-unicode-overflow.html
-/sdcard/android/layout_tests/fast/js/postfix-syntax.html
-/sdcard/android/layout_tests/fast/js/global-recursion-on-full-stack.html
-/sdcard/android/layout_tests/fast/js/closure-inside-extra-arg-call.html
-/sdcard/android/layout_tests/fast/js/number-cell-reuse.html
-/sdcard/android/layout_tests/fast/js/removing-Cf-characters.html
-/sdcard/android/layout_tests/fast/js/pretty-print.html
-/sdcard/android/layout_tests/fast/js/isPrototypeOf.html
-/sdcard/android/layout_tests/fast/js/prototypes.html
-/sdcard/android/layout_tests/fast/js/math.html
-/sdcard/android/layout_tests/fast/js/string-from-char-code.html
-/sdcard/android/layout_tests/fast/js/sort-no-jit-code-crash.html
-/sdcard/android/layout_tests/fast/js/eval-overriding.html
-/sdcard/android/layout_tests/fast/js/regexp-char-insensitive.html
-/sdcard/android/layout_tests/fast/js/array-float-delete.html
-/sdcard/android/layout_tests/fast/js/array-index-immediate-types.html
-/sdcard/android/layout_tests/fast/js/integer-extremes.html
-/sdcard/android/layout_tests/fast/js/console-non-string-values.html
-/sdcard/android/layout_tests/fast/js/regexp-non-bmp.html
-/sdcard/android/layout_tests/fast/js/regexp-range-bound-ffff.html
-/sdcard/android/layout_tests/fast/js/delete-then-put.html
-/sdcard/android/layout_tests/fast/js/nested-object-gc.html
-/sdcard/android/layout_tests/fast/js/string-replace-2.html
-/sdcard/android/layout_tests/fast/js/cached-eval-gc.html
-/sdcard/android/layout_tests/fast/js/property-getters-and-setters.html
-/sdcard/android/layout_tests/fast/js/array-reset-large-index.html
-/sdcard/android/layout_tests/fast/js/date-proto-generic-invocation.html
-/sdcard/android/layout_tests/fast/js/lastModified.html
-/sdcard/android/layout_tests/fast/js/encode-URI-test.html
-/sdcard/android/layout_tests/fast/js/codegen-loops-logical-nodes.html
-/sdcard/android/layout_tests/fast/js/string-capitalization.html
-/sdcard/android/layout_tests/fast/js/caller-property.html
-/sdcard/android/layout_tests/fast/js/regexp-overflow-too-big.html
-/sdcard/android/layout_tests/fast/js/repeat-cached-vm-reentry.html
-/sdcard/android/layout_tests/fast/js/date-DST-time-cusps.html
-/sdcard/android/layout_tests/fast/js/regexp-unicode-handling.html
-/sdcard/android/layout_tests/fast/js/unmatching-argument-count.html
-/sdcard/android/layout_tests/fast/js/text-field-resize.html
-/sdcard/android/layout_tests/fast/js/delete-multiple-global-blocks.html
-/sdcard/android/layout_tests/fast/js/eval-throw-return.html
-/sdcard/android/layout_tests/fast/js/duplicate-param-crash.html
-/sdcard/android/layout_tests/fast/js/switch-behaviour.html
-/sdcard/android/layout_tests/fast/js/delete-syntax.html
-/sdcard/android/layout_tests/fast/js/date-DST-pre-1970.html
-/sdcard/android/layout_tests/fast/js/array-splice.html
-/sdcard/android/layout_tests/fast/js/statement-list-register-crash.html
-/sdcard/android/layout_tests/fast/js/date-set-to-nan.html
-/sdcard/android/layout_tests/fast/js/code-serialize-paren.html
-/sdcard/android/layout_tests/fast/js/parse-backslash-before-newline.html
-/sdcard/android/layout_tests/fast/js/delete-function-parameter.html
-/sdcard/android/layout_tests/fast/js/exception-expression-offset.html
-/sdcard/android/layout_tests/fast/js/JSON-stringify-replacer.html
-/sdcard/android/layout_tests/fast/js/invalid-syntax-for-function.html
-/sdcard/android/layout_tests/fast/js/toString-and-valueOf-override.html
-/sdcard/android/layout_tests/fast/js/cyclic-prototypes.html
-/sdcard/android/layout_tests/fast/js/equality.html
-/sdcard/android/layout_tests/fast/js/order-of-operations.html
-/sdcard/android/layout_tests/fast/js/regexp-no-extensions.html
-/sdcard/android/layout_tests/fast/js/stack-unwinding.html
-/sdcard/android/layout_tests/fast/js/toString-try-else.html
-/sdcard/android/layout_tests/fast/js/reserved-words.html
-/sdcard/android/layout_tests/fast/js/function-dot-arguments-and-caller.html
-/sdcard/android/layout_tests/fast/js/do-while-expression-value.html
-/sdcard/android/layout_tests/fast/js/bom-in-file-retains-correct-offset.html
-/sdcard/android/layout_tests/fast/js/string-split-ignore-case.html
-/sdcard/android/layout_tests/fast/js/date-constructor.html
-/sdcard/android/layout_tests/fast/js/global-function-resolve.html
-/sdcard/android/layout_tests/fast/js/date-big-setdate.html
-/sdcard/android/layout_tests/fast/js/array-every.html
-/sdcard/android/layout_tests/fast/js/array-functions-non-arrays.html
-/sdcard/android/layout_tests/fast/js/function-toString-parentheses.html
-/sdcard/android/layout_tests/fast/js/while-expression-value.html
-/sdcard/android/layout_tests/fast/js/string-replace-3.html
-/sdcard/android/layout_tests/fast/js/avl-crash.html
-/sdcard/android/layout_tests/fast/js/vardecl-blocks-init.html
-/sdcard/android/layout_tests/fast/js/null-char-in-string.html
-/sdcard/android/layout_tests/fast/js/codegen-temporaries-multiple-global-blocks.html
-/sdcard/android/layout_tests/fast/js/char-at.html
-/sdcard/android/layout_tests/fast/js/function-constructor-newline-after-brace.html
-/sdcard/android/layout_tests/fast/js/propertyIsEnumerable.html
-/sdcard/android/layout_tests/fast/js/exception-thrown-from-equal.html
-/sdcard/android/layout_tests/fast/js/constructor.html
-/sdcard/android/layout_tests/fast/js/regexp-backreferences.html
-/sdcard/android/layout_tests/fast/js/regexp-overflow.html
-/sdcard/android/layout_tests/fast/js/var-declarations.html
-/sdcard/android/layout_tests/fast/js/continue-break-multiple-labels.html
-/sdcard/android/layout_tests/fast/js/toString-exception.html
-/sdcard/android/layout_tests/fast/js/regexp-test-null-string.html
-/sdcard/android/layout_tests/fast/js/date-parse-comments-test.html
-/sdcard/android/layout_tests/fast/js/select-options-remove-gc.html
-/sdcard/android/layout_tests/fast/js/implicit-call-with-global-reentry.html
-/sdcard/android/layout_tests/fast/js/array-tostring-and-join.html
-/sdcard/android/layout_tests/fast/js/function-names.html
-/sdcard/android/layout_tests/fast/js/primitive-property-access-edge-cases.html
-/sdcard/android/layout_tests/fast/js/date-preserve-milliseconds.html
-/sdcard/android/layout_tests/fast/js/sort-large-array.html
-/sdcard/android/layout_tests/fast/js/for-in-to-text.html
-/sdcard/android/layout_tests/fast/js/global-var-limit.html
-/sdcard/android/layout_tests/fast/js/static-scope-object.html
-/sdcard/android/layout_tests/fast/js/var-shadows-arg-crash.html
-/sdcard/android/layout_tests/fast/js/function-apply.html
-/sdcard/android/layout_tests/fast/js/array-reduce.html
-/sdcard/android/layout_tests/fast/js/function-prototype.html
-/sdcard/android/layout_tests/fast/js/tostring-exception-in-property-access.html
-/sdcard/android/layout_tests/fast/js/function-declaration-statement.html
-/sdcard/android/layout_tests/fast/js/large-expressions.html
-/sdcard/android/layout_tests/fast/js/date-negative-setmonth.html
-/sdcard/android/layout_tests/fast/js/reentrant-call-unwind.html
-/sdcard/android/layout_tests/fast/js/dictionary-no-cache.html
-/sdcard/android/layout_tests/fast/js/regexp-lastindex.html
-/sdcard/android/layout_tests/fast/js/finally-codegen-failure.html
-/sdcard/android/layout_tests/fast/js/instance-of-immediates.html
-/sdcard/android/layout_tests/fast/js/read-modify-eval.html
-/sdcard/android/layout_tests/fast/js/exception-thrown-from-function-with-lazy-activation.html
-/sdcard/android/layout_tests/fast/js/cyclic-ref-toString.html
-/sdcard/android/layout_tests/fast/js/function-toString-semicolon-insertion.html
-/sdcard/android/layout_tests/fast/js/exception-sequencing.html
-/sdcard/android/layout_tests/fast/js/date-big-constructor.html
-/sdcard/android/layout_tests/fast/js/gmail-re-re.html
-/sdcard/android/layout_tests/fast/js/deep-recursion-test.html
-/sdcard/android/layout_tests/fast/js/lexical-lookup-in-function-constructor.html
-/sdcard/android/layout_tests/fast/js/regexp-range-out-of-order.html
-/sdcard/android/layout_tests/fast/js/throw-from-array-sort.html
-/sdcard/android/layout_tests/fast/js/slash-lineterminator-parse.html
-/sdcard/android/layout_tests/fast/js/dot-node-base-exception.html
-/sdcard/android/layout_tests/fast/js/toString-stack-overflow.html
-/sdcard/android/layout_tests/fast/js/codegen-peephole-locals.html
-/sdcard/android/layout_tests/fast/js/constant-count.html
-/sdcard/android/layout_tests/fast/js/regexp-compile.html
-/sdcard/android/layout_tests/fast/js/declaration-in-block.html
-/sdcard/android/layout_tests/fast/js/eval-var-decl.html
-/sdcard/android/layout_tests/fast/js/eval-cross-window.html
-/sdcard/android/layout_tests/fast/js/function-decompilation-operators.html
-/sdcard/android/layout_tests/fast/js/sort-non-numbers.html
-/sdcard/android/layout_tests/fast/js/excessive-comma-usage.html
-/sdcard/android/layout_tests/fast/js/method-check.html
-/sdcard/android/layout_tests/fast/js/function-declarations.html
-/sdcard/android/layout_tests/fast/js/regexp-extended-characters-match.html
-/sdcard/android/layout_tests/fast/js/non-object-proto.html
-/sdcard/android/layout_tests/fast/js/toString-number-dot-expr.html
-/sdcard/android/layout_tests/fast/js/date-parse-test.html
-/sdcard/android/layout_tests/fast/js/exception-try-finally-scope-error.html
-/sdcard/android/layout_tests/fast/js/function-dot-arguments.html
-/sdcard/android/layout_tests/fast/js/toString-prefix-postfix-preserve-parens.html
-/sdcard/android/layout_tests/fast/js/regexp-ranges-and-escaped-hyphens.html
-/sdcard/android/layout_tests/fast/js/construct-global-object.html
-/sdcard/android/layout_tests/fast/js/array-holes.html
-/sdcard/android/layout_tests/fast/js/exception-linenums.html
-/sdcard/android/layout_tests/fast/js/codegen-temporaries.html
-/sdcard/android/layout_tests/fast/js/array-join-bug-11524.html
-/sdcard/android/layout_tests/fast/js/with-scope-gc.html
-/sdcard/android/layout_tests/fast/js/string-index-overflow.html
-/sdcard/android/layout_tests/fast/js/eval-cache-crash.html
-/sdcard/android/layout_tests/fast/js/array-map.html
-/sdcard/android/layout_tests/fast/js/exception-codegen-crash.html
-/sdcard/android/layout_tests/fast/js/comparefn-sort-stability.html
-/sdcard/android/layout_tests/fast/js/typeof-constant-string.html
-/sdcard/android/layout_tests/fast/js/navigator-plugins-crash.html
-/sdcard/android/layout_tests/fast/js/vardecl-preserve-parameters.html
-/sdcard/android/layout_tests/fast/inline/clean-after-removing-temp-boxes.html
-/sdcard/android/layout_tests/fast/inline/continuation-positioned-reparenting.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/early-acid3-65-excerpt.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/early-acid3-66-excerpt.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/cellpadding-attribute.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/insert-row.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/tBodies.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableElement/rows.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/activeElement.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/hasFocus-frameless-crash.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/writeln-call.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/document-plugins.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/title-get.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/object-by-name-unknown-child-element.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/object-by-name-or-id.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/title-set.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/write-multiple-calls.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/document-special-properties.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/url-getset.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/write-call.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/document-open-return-value.html
-/sdcard/android/layout_tests/fast/dom/HTMLDocument/writeln-multiple-calls.html
-/sdcard/android/layout_tests/fast/dom/HTMLLabelElement/form/test1.html
-/sdcard/android/layout_tests/fast/dom/Document/replace-child.html
-/sdcard/android/layout_tests/fast/dom/Document/title-property-creates-title-element.html
-/sdcard/android/layout_tests/fast/dom/Document/createElementNS-namespace-err.html
-/sdcard/android/layout_tests/fast/dom/Document/title-property-set-multiple-times.html
-/sdcard/android/layout_tests/fast/dom/Document/document-reopen.html
-/sdcard/android/layout_tests/fast/dom/Document/document-charset.html
-/sdcard/android/layout_tests/fast/dom/Document/replaceChild-null-oldChild.html
-/sdcard/android/layout_tests/fast/dom/Document/createAttributeNS-namespace-err.html
-/sdcard/android/layout_tests/fast/dom/Document/open-with-pending-load.html
-/sdcard/android/layout_tests/fast/dom/Document/document-write-doctype.html
-/sdcard/android/layout_tests/fast/dom/Document/doc-open-while-parsing.html
-/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/named-options.html
-/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/length-not-overridden.html
-/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/options-collection-set-string-length.html
-/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/listbox-select-reset.html
-/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/options-collection-detached.html
-/sdcard/android/layout_tests/fast/dom/HTMLSelectElement/remove-element-from-within-focus-handler-crash.html
-/sdcard/android/layout_tests/fast/dom/Selection/getRangeAt.html
-/sdcard/android/layout_tests/fast/dom/HTMLMetaElement/meta-attributes.html
-/sdcard/android/layout_tests/fast/dom/Element/fixed-position-offset-parent.html
-/sdcard/android/layout_tests/fast/dom/Element/getAttribute-check-case-sensitivity.html
-/sdcard/android/layout_tests/fast/dom/Element/attr-param-typechecking.html
-/sdcard/android/layout_tests/fast/dom/Element/attribute-uppercase.html
-/sdcard/android/layout_tests/fast/dom/Element/element-traversal.html
-/sdcard/android/layout_tests/fast/dom/Element/onclick-case.html
-/sdcard/android/layout_tests/fast/dom/Element/offsetLeft-offsetTop-body-quirk.html
-/sdcard/android/layout_tests/fast/dom/Element/contains-method.html
-/sdcard/android/layout_tests/fast/dom/Element/scrollWidth.html
-/sdcard/android/layout_tests/fast/dom/Element/setAttribute-with-colon.html
-/sdcard/android/layout_tests/fast/dom/Element/setAttribute-case-insensitivity.html
-/sdcard/android/layout_tests/fast/dom/Element/dimension-properties-unrendered.html
-/sdcard/android/layout_tests/fast/dom/Element/offsetLeft-offsetTop-html.html
-/sdcard/android/layout_tests/fast/dom/Element/offsetTop-table-cell.html
-/sdcard/android/layout_tests/fast/dom/DOMException/EventException.html
-/sdcard/android/layout_tests/fast/dom/DOMException/prototype-object.html
-/sdcard/android/layout_tests/fast/dom/DOMException/RangeException.html
-/sdcard/android/layout_tests/fast/dom/HTMLButtonElement/value/getset.html
-/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/script-for-attribute-unexpected-execution.html
-/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/script-reexecution.html
-/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/script-set-src.html
-/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/script-load-events.html
-/sdcard/android/layout_tests/fast/dom/HTMLScriptElement/script-decoding-error-after-setting-src.html
-/sdcard/android/layout_tests/fast/dom/HTMLOptionElement/collection-setter-getter.html
-/sdcard/android/layout_tests/fast/dom/HTMLOptionElement/set-option-index-text.html
-/sdcard/android/layout_tests/fast/dom/HTMLOptionElement/option-text.html
-/sdcard/android/layout_tests/fast/dom/HTMLOptionElement/option-prototype.html
-/sdcard/android/layout_tests/fast/dom/NodeList/5725058-crash-scenario-1.html
-/sdcard/android/layout_tests/fast/dom/NodeList/5725058-crash-scenario-2.html
-/sdcard/android/layout_tests/fast/dom/NodeList/childNodes-reset-cache.html
-/sdcard/android/layout_tests/fast/dom/NodeList/5725058-crash-scenario-3.html
-/sdcard/android/layout_tests/fast/dom/NodeList/invalidate-node-lists-when-parsing.html
-/sdcard/android/layout_tests/fast/dom/NodeList/item-by-id-with-no-document.html
-/sdcard/android/layout_tests/fast/dom/NodeList/nodelist-item-with-name.html
-/sdcard/android/layout_tests/fast/dom/DOMImplementation/createDocument-namespace-err.html
-/sdcard/android/layout_tests/fast/dom/DOMImplementation/createDocumentType-err.html
-/sdcard/android/layout_tests/fast/dom/CSSStyleDeclaration/transition-property-names.html
-/sdcard/android/layout_tests/fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html
-/sdcard/android/layout_tests/fast/dom/CSSStyleDeclaration/empty-string-property.html
-/sdcard/android/layout_tests/fast/dom/Node/normalize.html
-/sdcard/android/layout_tests/fast/dom/Node/initial-values.html
-/sdcard/android/layout_tests/fast/dom/Node/DOMNodeRemovedEvent.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/viewless-document.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/caseID-almost-strict.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/elementRoot.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/caseID-strict.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/not-supported-namespace-in-selector.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/id-fastpath.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/dumpNodeList.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/caseTag.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/undefined-null-stringify.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/detached-element.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/caseID.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/bug-17313.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/id-fastpath-almost-strict.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/id-fastpath-strict.html
-/sdcard/android/layout_tests/fast/dom/SelectorAPI/dumpNodeList-almost-strict.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableSectionElement/rows.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/checked-pseudo-selector.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-text-reset.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/size-as-number.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/duplicate-element-names.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-hidden-value.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/input-checked-reset.html
-/sdcard/android/layout_tests/fast/dom/HTMLInputElement/size-attribute.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/array/001.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/array/002.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/array/003.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/array/004.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/002.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/012.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/004.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/014.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/006.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/008.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/dumpNodeList.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/001.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/003.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/013.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/005.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/015.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/007.html
-/sdcard/android/layout_tests/fast/dom/getElementsByClassName/009.html
-/sdcard/android/layout_tests/fast/dom/TreeWalker/TreeWalker-currentNode.html
-/sdcard/android/layout_tests/fast/dom/HTMLDivElement/align/getset.html
-/sdcard/android/layout_tests/fast/dom/Text/replaceWholeText.html
-/sdcard/android/layout_tests/fast/dom/HTMLFormElement/adopt-assertion.html
-/sdcard/android/layout_tests/fast/dom/HTMLFormElement/document-deactivation-callback-crash.html
-/sdcard/android/layout_tests/fast/dom/HTMLFormElement/htmlformelement-indexed-getter.html
-/sdcard/android/layout_tests/fast/dom/HTMLFormElement/elements-not-in-document.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/window-override-window-using-defineGetter.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/window-override-location-using-defineGetter.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-valueOf-using-with.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-valueOf-on-proto-using-defineGetter.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/window-shadow-location-using-string.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-valueOf-on-proto-using-with.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-toString.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-valueOf-on-proto.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/window-shadow-window-using-js-object-with-location-field.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/window-shadow-location-using-js-object-with-toString.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-toString-using-defineGetter.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-valueOf.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-toString-using-with.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-toString-on-proto-using-defineGetter.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-toString-on-proto-using-with.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-toString-on-proto.html
-/sdcard/android/layout_tests/fast/dom/Window/Location/location-override-valueOf-using-defineGetter.html
-/sdcard/android/layout_tests/fast/dom/Window/window-closed-crash.html
-/sdcard/android/layout_tests/fast/dom/Window/window-function-name-getter-precedence.html
-/sdcard/android/layout_tests/fast/dom/Window/window-open-self.html
-/sdcard/android/layout_tests/fast/dom/Window/console-functions.html
-/sdcard/android/layout_tests/fast/dom/Window/window-postmessage-args.html
-/sdcard/android/layout_tests/fast/dom/Window/attr-constructor.html
-/sdcard/android/layout_tests/fast/dom/Window/window-remove-event-listener.html
-/sdcard/android/layout_tests/fast/dom/Window/window-frames-self-referential.html
-/sdcard/android/layout_tests/fast/dom/Window/redirect-with-timer.html
-/sdcard/android/layout_tests/fast/dom/Window/setting-properties-on-closed-window.html
-/sdcard/android/layout_tests/fast/dom/Window/window-open-parent.html
-/sdcard/android/layout_tests/fast/dom/Window/window-access-after-navigation.html
-/sdcard/android/layout_tests/fast/dom/Window/window-appendages-cleared.html
-/sdcard/android/layout_tests/fast/dom/Window/window-special-properties.html
-/sdcard/android/layout_tests/fast/dom/Window/window-custom-prototype.html
-/sdcard/android/layout_tests/fast/dom/Window/window-collection-length-no-crash.html
-/sdcard/android/layout_tests/fast/dom/Window/setTimeout-no-arguments.html
-/sdcard/android/layout_tests/fast/dom/Window/getMatchedCSSRules-null-crash.html
-/sdcard/android/layout_tests/fast/dom/Window/window-open-self-from-other-frame.html
-/sdcard/android/layout_tests/fast/dom/Window/window-custom-prototype-crash.html
-/sdcard/android/layout_tests/fast/dom/Window/setTimeout-string-argument.html
-/sdcard/android/layout_tests/fast/dom/Window/window-object-cross-frame-calls.html
-/sdcard/android/layout_tests/fast/dom/Window/window-location-replace-functions.html
-/sdcard/android/layout_tests/fast/dom/Window/dispatchEvent.html
-/sdcard/android/layout_tests/fast/dom/Window/window-function-frame-getter-precedence.html
-/sdcard/android/layout_tests/fast/dom/Window/atob-btoa.html
-/sdcard/android/layout_tests/fast/dom/Window/clear-timeout.html
-/sdcard/android/layout_tests/fast/dom/Window/window-early-properties-xhr.html
-/sdcard/android/layout_tests/fast/dom/Window/window-property-clearing.html
-/sdcard/android/layout_tests/fast/dom/Window/element-constructors-on-window.html
-/sdcard/android/layout_tests/fast/dom/Window/orphaned-frame-access.html
-/sdcard/android/layout_tests/fast/dom/Window/window-open-pending-url.html
-/sdcard/android/layout_tests/fast/dom/Window/window-resize-and-move-sub-frame.html
-/sdcard/android/layout_tests/fast/dom/Window/console-trace.html
-/sdcard/android/layout_tests/fast/dom/Window/alert-undefined.html
-/sdcard/android/layout_tests/fast/dom/Window/window-open-top.html
-/sdcard/android/layout_tests/fast/dom/Window/global-opener-function.html
-/sdcard/android/layout_tests/fast/dom/Window/window-property-shadowing.html
-/sdcard/android/layout_tests/fast/dom/Window/remove-timeout-crash.html
-/sdcard/android/layout_tests/fast/dom/Window/customized-property-survives-gc.html
-/sdcard/android/layout_tests/fast/dom/Window/timeout-callback-scope.html
-/sdcard/android/layout_tests/fast/dom/Window/window-property-shadowing-name.html
-/sdcard/android/layout_tests/fast/dom/Window/window-open-parent-no-parent.html
-/sdcard/android/layout_tests/fast/dom/Window/closure-access-after-navigation-iframe.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableRowElement/cells.html
-/sdcard/android/layout_tests/fast/dom/HTMLTableRowElement/insertCell.html
-/sdcard/android/layout_tests/fast/dom/HTMLFontElement/size-attribute.html
-/sdcard/android/layout_tests/fast/dom/HTMLObjectElement/form/test1.html
-/sdcard/android/layout_tests/fast/dom/HTMLObjectElement/object-as-frame.html
-/sdcard/android/layout_tests/fast/dom/HTMLElement/innerHTML-selection-crash.html
-/sdcard/android/layout_tests/fast/dom/HTMLElement/set-inner-outer-optimization.html
-/sdcard/android/layout_tests/fast/dom/Range/compareBoundaryPoints-1.html
-/sdcard/android/layout_tests/fast/dom/Range/range-compareNode.html
-/sdcard/android/layout_tests/fast/dom/Range/range-comparePoint.html
-/sdcard/android/layout_tests/fast/dom/Range/acid3-surround-contents.html
-/sdcard/android/layout_tests/fast/dom/Range/mutation.html
-/sdcard/android/layout_tests/fast/dom/Range/deleted-range-endpoints.html
-/sdcard/android/layout_tests/fast/dom/Range/13000.html
-/sdcard/android/layout_tests/fast/dom/Range/range-processing-instructions.html
-/sdcard/android/layout_tests/fast/dom/Range/range-insertNode-separate-endContainer.html
-/sdcard/android/layout_tests/fast/dom/Range/range-intersectsNode.html
-/sdcard/android/layout_tests/fast/dom/Range/range-isPointInRange.html
-/sdcard/android/layout_tests/fast/dom/Range/compareBoundaryPoints-2.html
-/sdcard/android/layout_tests/fast/dom/Range/range-clone-empty.html
-/sdcard/android/layout_tests/fast/dom/Range/range-modifycontents.html
-/sdcard/android/layout_tests/fast/dom/Range/bug-19527.html
-/sdcard/android/layout_tests/fast/dom/Range/range-insertNode-splittext.html
-/sdcard/android/layout_tests/fast/dom/Range/surroundContents-check-boundary-points.html
-/sdcard/android/layout_tests/fast/dom/Range/range-exceptions.html
-/sdcard/android/layout_tests/fast/dom/HTMLHeadElement/head-check.html
-/sdcard/android/layout_tests/fast/dom/HTMLHtmlElement/set-version.html
-/sdcard/android/layout_tests/fast/dom/HTMLHtmlElement/duplicate-html-element-crash.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-lowsrc-getset.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-src-absolute-url.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-loading-gc.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-longdesc-absolute-url.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/constructor-mutation-event-dispatch.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-load-cross-document.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-without-renderer-width.html
-/sdcard/android/layout_tests/fast/dom/HTMLImageElement/image-natural-width-height.html
-/sdcard/android/layout_tests/fast/dom/StyleSheet/ownerNode-lifetime.html
-/sdcard/android/layout_tests/fast/dom/EntityReference/readonly-exceptions.html
-/sdcard/android/layout_tests/fast/dom/script-element-remove-self.html
-/sdcard/android/layout_tests/fast/dom/remove-named-attribute-crash.html
-/sdcard/android/layout_tests/fast/dom/style-sheet-candidate-remove-unrendered-document.html
-/sdcard/android/layout_tests/fast/dom/node-item.html
-/sdcard/android/layout_tests/fast/dom/clone-node-style.html
-/sdcard/android/layout_tests/fast/dom/script-element-without-frame-crash.html
-/sdcard/android/layout_tests/fast/dom/script-element-gc.html
-/sdcard/android/layout_tests/fast/dom/empty-hash-and-search.html
-/sdcard/android/layout_tests/fast/dom/duplicate-ids.html
-/sdcard/android/layout_tests/fast/dom/prototypes.html
-/sdcard/android/layout_tests/fast/dom/clone-node-form-elements.html
-/sdcard/android/layout_tests/fast/dom/import-attribute-node.html
-/sdcard/android/layout_tests/fast/dom/getter-on-window-object2.html
-/sdcard/android/layout_tests/fast/dom/objc-big-method-name.html
-/sdcard/android/layout_tests/fast/dom/importNode-prefix.html
-/sdcard/android/layout_tests/fast/dom/css-dom-read.html
-/sdcard/android/layout_tests/fast/dom/image-object.html
-/sdcard/android/layout_tests/fast/dom/gc-5.html
-/sdcard/android/layout_tests/fast/dom/cssTarget-crash.html
-/sdcard/android/layout_tests/fast/dom/DOMParser-assign-variable.html
-/sdcard/android/layout_tests/fast/dom/offset-parent-positioned-and-inline.html
-/sdcard/android/layout_tests/fast/dom/timer-clear-interval-in-handler.html
-/sdcard/android/layout_tests/fast/dom/implementation-createHTMLDocument.html
-/sdcard/android/layout_tests/fast/dom/iframe-document.html
-/sdcard/android/layout_tests/fast/dom/document-all-input.html
-/sdcard/android/layout_tests/fast/dom/getelementsbytagnamens-mixed-namespaces.html
-/sdcard/android/layout_tests/fast/dom/object-plugin-hides-properties.html
-/sdcard/android/layout_tests/fast/dom/gc-2.html
-/sdcard/android/layout_tests/fast/dom/computed-style-set-property.html
-/sdcard/android/layout_tests/fast/dom/inner-text-001.html
-/sdcard/android/layout_tests/fast/dom/css-selectorText.html
-/sdcard/android/layout_tests/fast/dom/replace-first-child.html
-/sdcard/android/layout_tests/fast/dom/select-selectedIndex-multiple.html
-/sdcard/android/layout_tests/fast/dom/importNode-null.html
-/sdcard/android/layout_tests/fast/dom/space-to-text.html
-/sdcard/android/layout_tests/fast/dom/css-set-property-exception.html
-/sdcard/android/layout_tests/fast/dom/java-applet-calls.html
-/sdcard/android/layout_tests/fast/dom/plugin-attributes-enumeration.html
-/sdcard/android/layout_tests/fast/dom/html-attribute-types.html
-/sdcard/android/layout_tests/fast/dom/resource-locations-in-created-html-document.html
-/sdcard/android/layout_tests/fast/dom/comment-document-fragment.html
-/sdcard/android/layout_tests/fast/dom/createAttribute-exception.html
-/sdcard/android/layout_tests/fast/dom/noscript-style.html
-/sdcard/android/layout_tests/fast/dom/serialize-cdata.html
-/sdcard/android/layout_tests/fast/dom/createDocument.html
-/sdcard/android/layout_tests/fast/dom/getelementbyname-invalidation.html
-/sdcard/android/layout_tests/fast/dom/setAttributeNS-empty-namespace.html
-/sdcard/android/layout_tests/fast/dom/capturing-event-listeners.html
-/sdcard/android/layout_tests/fast/dom/title-text-property.html
-/sdcard/android/layout_tests/fast/dom/null-page-show-modal-dialog-crash.html
-/sdcard/android/layout_tests/fast/dom/incompatible-operations.html
-/sdcard/android/layout_tests/fast/dom/inner-text-rtl.html
-/sdcard/android/layout_tests/fast/dom/createDocument-empty.html
-/sdcard/android/layout_tests/fast/dom/documenturi-assigned-junk-implies-baseuri-null.html
-/sdcard/android/layout_tests/fast/dom/option-properties.html
-/sdcard/android/layout_tests/fast/dom/background-shorthand-csstext.html
-/sdcard/android/layout_tests/fast/dom/Range-insertNode-crash.html
-/sdcard/android/layout_tests/fast/dom/NamedNodeMap-setNamedItem-crash.html
-/sdcard/android/layout_tests/fast/dom/early-frame-url.html
-/sdcard/android/layout_tests/fast/dom/everything-to-string.html
-/sdcard/android/layout_tests/fast/dom/attribute-empty-value-no-children.html
-/sdcard/android/layout_tests/fast/dom/length-attribute-mapping.html
-/sdcard/android/layout_tests/fast/dom/documenturi-loses-to-base-tag.html
-/sdcard/android/layout_tests/fast/dom/createDocumentType2.html
-/sdcard/android/layout_tests/fast/dom/gc-6.html
-/sdcard/android/layout_tests/fast/dom/attribute-case-sensitivity.html
-/sdcard/android/layout_tests/fast/dom/compatMode-Compat.html
-/sdcard/android/layout_tests/fast/dom/namespaces-1.html
-/sdcard/android/layout_tests/fast/dom/getter-on-window-object.html
-/sdcard/android/layout_tests/fast/dom/constructors-overriding.html
-/sdcard/android/layout_tests/fast/dom/defaultView.html
-/sdcard/android/layout_tests/fast/dom/collection-null-like-arguments.html
-/sdcard/android/layout_tests/fast/dom/gc-3.html
-/sdcard/android/layout_tests/fast/dom/event-attribute-availability.html
-/sdcard/android/layout_tests/fast/dom/select-selectedIndex.html
-/sdcard/android/layout_tests/fast/dom/compatMode-Strict.html
-/sdcard/android/layout_tests/fast/dom/attribute-downcast-right.html
-/sdcard/android/layout_tests/fast/dom/document-all-select.html
-/sdcard/android/layout_tests/fast/dom/wrapper-context.html
-/sdcard/android/layout_tests/fast/dom/anchor-backslash.html
-/sdcard/android/layout_tests/fast/dom/css-mediarule-functions.html
-/sdcard/android/layout_tests/fast/dom/gc-acid3.html
-/sdcard/android/layout_tests/fast/dom/duplicate-ids-document-order.html
-/sdcard/android/layout_tests/fast/dom/exception-no-frame-inline-script-crash.html
-/sdcard/android/layout_tests/fast/dom/XMLSerializer-doctype2.html
-/sdcard/android/layout_tests/fast/dom/dir-no-body.html
-/sdcard/android/layout_tests/fast/dom/null-document-window-open-crash.html
-/sdcard/android/layout_tests/fast/dom/css-RGBValue.html
-/sdcard/android/layout_tests/fast/dom/documentElement-null.html
-/sdcard/android/layout_tests/fast/dom/innerHTML-nbsp.html
-/sdcard/android/layout_tests/fast/dom/createElementNS-empty-namespace.html
-/sdcard/android/layout_tests/fast/dom/class-all-whitespace.html
-/sdcard/android/layout_tests/fast/dom/wrapper-identity.html
-/sdcard/android/layout_tests/fast/dom/null-document-location-assign-crash.html
-/sdcard/android/layout_tests/fast/dom/createElement.html
-/sdcard/android/layout_tests/fast/dom/createElement-with-column.xml
-/sdcard/android/layout_tests/fast/dom/simultaneouslyRegsiteredTimerFireOrder.html
-/sdcard/android/layout_tests/fast/dom/clone-node-form-elements-with-attr.html
-/sdcard/android/layout_tests/fast/dom/setAttributeNS.html
-/sdcard/android/layout_tests/fast/dom/anchor-toString.html
-/sdcard/android/layout_tests/fast/dom/dom-add-optionelement.html
-/sdcard/android/layout_tests/fast/dom/location-assign.html
-/sdcard/android/layout_tests/fast/dom/documenturi-affects-relative-paths.html
-/sdcard/android/layout_tests/fast/dom/javascript-backslash.html
-/sdcard/android/layout_tests/fast/dom/setAttribute-using-initial-input-value.html
-/sdcard/android/layout_tests/fast/dom/css-shortHands.html
-/sdcard/android/layout_tests/fast/dom/generic-form-element-assert.html
-/sdcard/android/layout_tests/fast/dom/dom-instanceof.html
-/sdcard/android/layout_tests/fast/dom/array-special-accessors-should-ignore-items.html
-/sdcard/android/layout_tests/fast/dom/element-attribute-js-null.html
-/sdcard/android/layout_tests/fast/dom/css-dom-read-2.html
-/sdcard/android/layout_tests/fast/dom/navigator-cookieEnabled-no-crash.html
-/sdcard/android/layout_tests/fast/dom/import-document-fragment.html
-/sdcard/android/layout_tests/fast/dom/setter-type-enforcement.html
-/sdcard/android/layout_tests/fast/dom/XMLSerializer.html
-/sdcard/android/layout_tests/fast/dom/navigator-vendorSub.html
-/sdcard/android/layout_tests/fast/dom/outerText-no-element.html
-/sdcard/android/layout_tests/fast/dom/replace-child-siblings.html
-/sdcard/android/layout_tests/fast/dom/xmlhttprequest-constructor-in-detached-document.html
-/sdcard/android/layout_tests/fast/dom/constants.html
-/sdcard/android/layout_tests/fast/dom/inner-text-with-no-renderer.html
-/sdcard/android/layout_tests/fast/dom/gc-7.html
-/sdcard/android/layout_tests/fast/dom/onerror-img.html
-/sdcard/android/layout_tests/fast/dom/document-attribute-js-null.html
-/sdcard/android/layout_tests/fast/dom/css-element-attribute-js-null.html
-/sdcard/android/layout_tests/fast/dom/gc-11.html
-/sdcard/android/layout_tests/fast/dom/mutation-event-remove-inserted-node.html
-/sdcard/android/layout_tests/fast/dom/constructors-cached.html
-/sdcard/android/layout_tests/fast/dom/null-chardata-crash.html
-/sdcard/android/layout_tests/fast/dom/compatMode-AlmostStrict.html
-/sdcard/android/layout_tests/fast/dom/createElement-with-column.html
-/sdcard/android/layout_tests/fast/dom/exception-no-frame-timeout-crash.html
-/sdcard/android/layout_tests/fast/dom/title-text-property-2.html
-/sdcard/android/layout_tests/fast/dom/no-elements.html
-/sdcard/android/layout_tests/fast/dom/non-numeric-values-numeric-parameters.html
-/sdcard/android/layout_tests/fast/dom/gc-4.html
-/sdcard/android/layout_tests/fast/dom/inner-width-height.html
-/sdcard/android/layout_tests/fast/dom/XMLSerializer-doctype.html
-/sdcard/android/layout_tests/fast/dom/createElementNS.html
-/sdcard/android/layout_tests/fast/dom/undetectable-document-all.html
-/sdcard/android/layout_tests/fast/dom/prototype-chain.html
-/sdcard/android/layout_tests/fast/dom/gc-1.html
-/sdcard/android/layout_tests/fast/dom/script-add.html
-/sdcard/android/layout_tests/fast/dom/select-selectedIndex-bug-12942.html
-/sdcard/android/layout_tests/fast/dom/text-control-crash-on-select.html
-/sdcard/android/layout_tests/fast/dom/frame-contentWindow-crash.html
-/sdcard/android/layout_tests/fast/dom/document_write_params.html
-/sdcard/android/layout_tests/fast/dom/namednodemap-namelookup.html
-/sdcard/android/layout_tests/fast/dom/null-document-location-replace-crash.html
-/sdcard/android/layout_tests/fast/dom/htmlcollection-detectability.html
-/sdcard/android/layout_tests/fast/dom/documenturi-assigned-junk-implies-relative-urls-do-not-resolve.html
-/sdcard/android/layout_tests/fast/dom/collection-namedItem-via-item.html
-/sdcard/android/layout_tests/fast/dom/set-inner-text-newlines.html
-/sdcard/android/layout_tests/fast/dom/document-dir-property.html
-/sdcard/android/layout_tests/fast/dom/undetectable-style-filter.html
-/sdcard/android/layout_tests/fast/dom/domListEnumeration.html
-/sdcard/android/layout_tests/fast/dom/destroy-selected-radio-button-crash.html
-/sdcard/android/layout_tests/fast/dom/tabindex-clamp.html
-/sdcard/android/layout_tests/fast/dom/iframe-contentWindow-crash.html
-/sdcard/android/layout_tests/fast/dom/comment-dom-node.html
-/sdcard/android/layout_tests/fast/dom/constructors-cached-navigate.html
-/sdcard/android/layout_tests/fast/dom/features.html
-/sdcard/android/layout_tests/fast/dom/canvasContext2d-element-attribute-js-null.html
-/sdcard/android/layout_tests/fast/dom/remove-style-element.html
-/sdcard/android/layout_tests/fast/dom/attribute-namespaces-get-set.html
-/sdcard/android/layout_tests/fast/dom/innerHTML-escaping-attribute.html
-/sdcard/android/layout_tests/fast/dom/null-document-location-put-crash.html
-/sdcard/android/layout_tests/fast/dom/ImageDocument-image-deletion.html
-/sdcard/android/layout_tests/fast/dom/document-scripts.html
-/sdcard/android/layout_tests/fast/dom/cloneNode.html
-/sdcard/android/layout_tests/fast/dom/onload-open.html
-/sdcard/android/layout_tests/fast/gradients/crash-on-remove.html
-/sdcard/android/layout_tests/fast/invalid/test-case-tr-th-td-should-not-close-dl-list.html
-/sdcard/android/layout_tests/fast/invalid/nestedh3s-rapidweaver.html
-/sdcard/android/layout_tests/fast/forms/HTMLOptionElement_selected.html
-/sdcard/android/layout_tests/fast/forms/option-value-and-label.html
-/sdcard/android/layout_tests/fast/forms/menulist-selection-reset.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-customError-001.html
-/sdcard/android/layout_tests/fast/forms/textfield-focus-out.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-000.html
-/sdcard/android/layout_tests/fast/forms/form-data-encoding-normalization-overrun.html
-/sdcard/android/layout_tests/fast/forms/textarea-trailing-newline.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-patternMismatch-002.html
-/sdcard/android/layout_tests/fast/forms/selection-functions.html
-/sdcard/android/layout_tests/fast/forms/select-no-name.html
-/sdcard/android/layout_tests/fast/forms/multiple-selected-options-innerHTML.html
-/sdcard/android/layout_tests/fast/forms/input-named-action-overrides-action-attribute.html
-/sdcard/android/layout_tests/fast/forms/empty-get.html
-/sdcard/android/layout_tests/fast/forms/display-none-in-onchange-keyboard.html
-/sdcard/android/layout_tests/fast/forms/4628409.html
-/sdcard/android/layout_tests/fast/forms/numeric-input-name.html
-/sdcard/android/layout_tests/fast/forms/activate-and-disabled-elements.html
-/sdcard/android/layout_tests/fast/forms/tabs-with-modifiers.html
-/sdcard/android/layout_tests/fast/forms/form-get-multipart2.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-002.html
-/sdcard/android/layout_tests/fast/forms/menulist-no-renderer-onmousedown.html
-/sdcard/android/layout_tests/fast/forms/select-replace-option.html
-/sdcard/android/layout_tests/fast/forms/textarea-setvalue-submit.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-007.html
-/sdcard/android/layout_tests/fast/forms/double-focus.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-004.html
-/sdcard/android/layout_tests/fast/forms/form-data-encoding-2.html
-/sdcard/android/layout_tests/fast/forms/inline-ignored-on-legend.html
-/sdcard/android/layout_tests/fast/forms/focus.html
-/sdcard/android/layout_tests/fast/forms/input-text-enter.html
-/sdcard/android/layout_tests/fast/forms/input-implicit-length-limit.html
-/sdcard/android/layout_tests/fast/forms/element-order.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-customError-002.html
-/sdcard/android/layout_tests/fast/forms/form-post-urlencoded.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-001.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-patternMismatch-003.html
-/sdcard/android/layout_tests/fast/forms/8250.html
-/sdcard/android/layout_tests/fast/forms/var-name-conflict-in-form-event-handler.html
-/sdcard/android/layout_tests/fast/forms/listbox-select-all.html
-/sdcard/android/layout_tests/fast/forms/range-reset.html
-/sdcard/android/layout_tests/fast/forms/select-remove-option.html
-/sdcard/android/layout_tests/fast/forms/onselect-selectall.html
-/sdcard/android/layout_tests/fast/forms/input-select-webkit-user-select-none.html
-/sdcard/android/layout_tests/fast/forms/paste-multiline-text-input.html
-/sdcard/android/layout_tests/fast/forms/textarea-no-scroll-on-blur.html
-/sdcard/android/layout_tests/fast/forms/select-reset-multiple-selections-4-single-selection.html
-/sdcard/android/layout_tests/fast/forms/tab-in-input.html
-/sdcard/android/layout_tests/fast/forms/button-click-DOM.html
-/sdcard/android/layout_tests/fast/forms/submit-nil-value-field-assert.html
-/sdcard/android/layout_tests/fast/forms/domstring-replace-crash.html
-/sdcard/android/layout_tests/fast/forms/select-max-length.html
-/sdcard/android/layout_tests/fast/forms/form-get-multipart3.html
-/sdcard/android/layout_tests/fast/forms/select-out-of-bounds-index.html
-/sdcard/android/layout_tests/fast/forms/selected-index-assert.html
-/sdcard/android/layout_tests/fast/forms/legend-display-none.html
-/sdcard/android/layout_tests/fast/forms/form-collection-lookup.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-004.html
-/sdcard/android/layout_tests/fast/forms/select-list-box-mouse-focus.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-008.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-005.html
-/sdcard/android/layout_tests/fast/forms/required-attribute-001.html
-/sdcard/android/layout_tests/fast/forms/select-index-setter.html
-/sdcard/android/layout_tests/fast/forms/option-change-single-selected.html
-/sdcard/android/layout_tests/fast/forms/listbox-scroll-after-options-removed.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-customError-003.html
-/sdcard/android/layout_tests/fast/forms/input-selection-hidden.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-002.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-patternMismatch-004.html
-/sdcard/android/layout_tests/fast/forms/select-set-inner.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-elementFromPoint.html
-/sdcard/android/layout_tests/fast/forms/missing-action.html
-/sdcard/android/layout_tests/fast/forms/listbox-typeahead-empty.html
-/sdcard/android/layout_tests/fast/forms/submit-to-url-fragment.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-005.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-009.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-006.html
-/sdcard/android/layout_tests/fast/forms/old-names.html
-/sdcard/android/layout_tests/fast/forms/required-attribute-002.html
-/sdcard/android/layout_tests/fast/forms/add-and-remove-option.html
-/sdcard/android/layout_tests/fast/forms/focus-style-pending.html
-/sdcard/android/layout_tests/fast/forms/textarea-initial-caret-position.html
-/sdcard/android/layout_tests/fast/forms/input-type-change-in-onfocus-mouse.html
-/sdcard/android/layout_tests/fast/forms/mutation-event-recalc.html
-/sdcard/android/layout_tests/fast/forms/slow-click.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-customError-004.html
-/sdcard/android/layout_tests/fast/forms/autofocus-attribute.html
-/sdcard/android/layout_tests/fast/forms/element-by-name.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-003.html
-/sdcard/android/layout_tests/fast/forms/radio-button-no-change-event.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-patternMismatch-005.html
-/sdcard/android/layout_tests/fast/forms/input-maxlength.html
-/sdcard/android/layout_tests/fast/forms/select-reset.html
-/sdcard/android/layout_tests/fast/forms/input-hit-test-border.html
-/sdcard/android/layout_tests/fast/forms/pattern-attribute-001.html
-/sdcard/android/layout_tests/fast/forms/range-default-value.html
-/sdcard/android/layout_tests/fast/forms/shadow-tree-exposure.html
-/sdcard/android/layout_tests/fast/forms/paste-into-textarea.html
-/sdcard/android/layout_tests/fast/forms/radio-no-theme-padding.html
-/sdcard/android/layout_tests/fast/forms/textfield-drag-into-disabled.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-006.html
-/sdcard/android/layout_tests/fast/forms/saved-state-adoptNode-crash.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-007.html
-/sdcard/android/layout_tests/fast/forms/radio-check-click-and-drag.html
-/sdcard/android/layout_tests/fast/forms/11423.html
-/sdcard/android/layout_tests/fast/forms/cursor-position.html
-/sdcard/android/layout_tests/fast/forms/input-changing-value.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-004.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-001.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-patternMismatch-006.html
-/sdcard/android/layout_tests/fast/forms/button-in-forms-collection.html
-/sdcard/android/layout_tests/fast/forms/input-delete.html
-/sdcard/android/layout_tests/fast/forms/placeholder-non-textfield.html
-/sdcard/android/layout_tests/fast/forms/option-constructor-selected.html
-/sdcard/android/layout_tests/fast/forms/input-multiple.html
-/sdcard/android/layout_tests/fast/forms/input-zero-height-focus.html
-/sdcard/android/layout_tests/fast/forms/pattern-attribute-002.html
-/sdcard/android/layout_tests/fast/forms/textarea-linewrap-dynamic.html
-/sdcard/android/layout_tests/fast/forms/placeholder-dom-property.html
-/sdcard/android/layout_tests/fast/forms/select-width-font-change.html
-/sdcard/android/layout_tests/fast/forms/text-field-setvalue-crash.html
-/sdcard/android/layout_tests/fast/forms/form-get-multipart.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-007.html
-/sdcard/android/layout_tests/fast/forms/select-type-ahead-list-box-no-selection.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-008.html
-/sdcard/android/layout_tests/fast/forms/textarea-crlf.html
-/sdcard/android/layout_tests/fast/forms/remove-radio-button-assert.html
-/sdcard/android/layout_tests/fast/forms/text-set-value-crash.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-001.html
-/sdcard/android/layout_tests/fast/forms/select-namedItem.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-005.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-002.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-patternMismatch-007.html
-/sdcard/android/layout_tests/fast/forms/add-remove-option-modification-event.html
-/sdcard/android/layout_tests/fast/forms/input-type-change-in-onfocus-keyboard.html
-/sdcard/android/layout_tests/fast/forms/option-in-optgroup-removal.html
-/sdcard/android/layout_tests/fast/forms/form-data-encoding.html
-/sdcard/android/layout_tests/fast/forms/pattern-attribute-003.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-patternMismatch-001.html
-/sdcard/android/layout_tests/fast/forms/textarea-default-value-leading-newline.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-008.html
-/sdcard/android/layout_tests/fast/forms/add-remove-form-elements-stress-test.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-009.html
-/sdcard/android/layout_tests/fast/forms/textarea-setvalue-without-renderer.html
-/sdcard/android/layout_tests/fast/forms/hidden-input-not-enabled.html
-/sdcard/android/layout_tests/fast/forms/input-appearance-maxlength.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-001.html
-/sdcard/android/layout_tests/fast/forms/submit-with-base.html
-/sdcard/android/layout_tests/fast/forms/input-setvalue-selection.html
-/sdcard/android/layout_tests/fast/forms/autofocus-opera-002.html
-/sdcard/android/layout_tests/fast/forms/textarea-appearance-wrap.html
-/sdcard/android/layout_tests/fast/forms/add-selected-option.html
-/sdcard/android/layout_tests/fast/forms/willvalidate-006.html
-/sdcard/android/layout_tests/fast/forms/ValidityState-valueMissing-003.html
-/sdcard/android/layout_tests/fast/forms/textarea-hard-linewrap-empty.html
-/sdcard/android/layout_tests/fast/forms/document-write.html
-/sdcard/android/layout_tests/fast/table/incomplete-table-in-fragment-hang.html
-/sdcard/android/layout_tests/fast/table/section-in-table-before-misnested-text-crash-css.html
-/sdcard/android/layout_tests/fast/table/large-rowspan-crash.html
-/sdcard/android/layout_tests/fast/table/colgroup-relative.html
-/sdcard/android/layout_tests/fast/table/border-changes.html
-/sdcard/android/layout_tests/fast/table/table-row-compositing-repaint-crash.html
-/sdcard/android/layout_tests/fast/table/cell-in-row-before-misnested-text-crash-css.html
-/sdcard/android/layout_tests/fast/table/incomplete-table-in-fragment-2.html
-/sdcard/android/layout_tests/fast/table/rowindex-comment-nodes.html
-/sdcard/android/layout_tests/fast/table/td-display-nowrap.html
-/sdcard/android/layout_tests/fast/table/row-in-tbody-before-misnested-text-crash-css.html
-/sdcard/android/layout_tests/fast/table/empty-auto-column-zero-divide.html
-/sdcard/android/layout_tests/fast/table/form-in-tbody-before-misnested-text-crash-css.html
-/sdcard/android/layout_tests/fast/table/form-in-table-before-misnested-text-crash-css.html
-/sdcard/android/layout_tests/fast/table/destroy-cell-with-selection-crash.html
-/sdcard/android/layout_tests/fast/table/form-in-row-before-misnested-text-crash-css.html
-/sdcard/android/layout_tests/fast/css/counters/counter-function-input-2.html
-/sdcard/android/layout_tests/fast/css/counters/counter-function-input.html
-/sdcard/android/layout_tests/fast/css/counters/counter-number-input.html
-/sdcard/android/layout_tests/fast/css/variables/color-hex-test.html
-/sdcard/android/layout_tests/fast/css/variables/invalid-identifier.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/computed-style-negative-top.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-borderRadius.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-background-size.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-border-image.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-border-spacing.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/computed-style-font-family.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-zIndex-auto.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-transform.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/computed-style-display-none.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-background-position.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-text-overflow.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-border-box.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-relayout.html
-/sdcard/android/layout_tests/fast/css/getComputedStyle/getComputedStyle-text-decoration.html
-/sdcard/android/layout_tests/fast/css/media-rule-dyn.html
-/sdcard/android/layout_tests/fast/css/transform-function-lowercase-assert.html
-/sdcard/android/layout_tests/fast/css/word-break-user-modify-allowed-values.html
-/sdcard/android/layout_tests/fast/css/import-style-update.html
-/sdcard/android/layout_tests/fast/css/outline-invert-assertion.html
-/sdcard/android/layout_tests/fast/css/insertRule-font-face.html
-/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-004.html
-/sdcard/android/layout_tests/fast/css/zoom-in-length-round-trip.html
-/sdcard/android/layout_tests/fast/css/transform-inline-style-remove.html
-/sdcard/android/layout_tests/fast/css/padding-no-renderer.html
-/sdcard/android/layout_tests/fast/css/transition_shorthand_parsing.html
-/sdcard/android/layout_tests/fast/css/css-selector-text.html
-/sdcard/android/layout_tests/fast/css/dashboard-regions-attr-crash.html
-/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-001.html
-/sdcard/android/layout_tests/fast/css/pseudo-required-optional-006.html
-/sdcard/android/layout_tests/fast/css/font-property-priority.html
-/sdcard/android/layout_tests/fast/css/number-parsing-crash.html
-/sdcard/android/layout_tests/fast/css/device-aspect-ratio.html
-/sdcard/android/layout_tests/fast/css/pseudostyle-anonymous-text.html
-/sdcard/android/layout_tests/fast/css/css-properties-case-insensitive.html
-/sdcard/android/layout_tests/fast/css/sheet-collection-link.html
-/sdcard/android/layout_tests/fast/css/pseudo-required-optional-003.html
-/sdcard/android/layout_tests/fast/css/resize-value-compared.html
-/sdcard/android/layout_tests/fast/css/font-face-descriptor-multiple-values-parsing.html
-/sdcard/android/layout_tests/fast/css/hexColor-isDigit-assert.html
-/sdcard/android/layout_tests/fast/css/transform-inline-style.html
-/sdcard/android/layout_tests/fast/css/child-selector-implicit-tbody.html
-/sdcard/android/layout_tests/fast/css/outline-hidden-illegal-value.html
-/sdcard/android/layout_tests/fast/css/emptyStyleTag.html
-/sdcard/android/layout_tests/fast/css/stale-style-selector-crash-1.html
-/sdcard/android/layout_tests/fast/css/display-none-inline-style-change-crash.html
-/sdcard/android/layout_tests/fast/css/getPropertyValue-clip.html
-/sdcard/android/layout_tests/fast/css/border-image-crash.html
-/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-005.html
-/sdcard/android/layout_tests/fast/css/insertRule-media.html
-/sdcard/android/layout_tests/fast/css/html-attr-case-sensitivity.html
-/sdcard/android/layout_tests/fast/css/font-face-multiple-families.html
-/sdcard/android/layout_tests/fast/css/getPropertyValue-border.html
-/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-002.html
-/sdcard/android/layout_tests/fast/css/invalid-rule-value.html
-/sdcard/android/layout_tests/fast/css/max-device-aspect-ratio.html
-/sdcard/android/layout_tests/fast/css/background-currentcolor.html
-/sdcard/android/layout_tests/fast/css/pseudo-required-optional-004.html
-/sdcard/android/layout_tests/fast/css/orphaned_units_crash.html
-/sdcard/android/layout_tests/fast/css/invalid-cursor-property-crash.html
-/sdcard/android/layout_tests/fast/css/sheet-title.html
-/sdcard/android/layout_tests/fast/css/large-list-of-rules-crash.html
-/sdcard/android/layout_tests/fast/css/pseudo-required-optional-001.html
-/sdcard/android/layout_tests/fast/css/background-position-serialize.html
-/sdcard/android/layout_tests/fast/css/stale-style-selector-crash-2.html
-/sdcard/android/layout_tests/fast/css/webkit-marquee-speed-unit-in-quirksmode.html
-/sdcard/android/layout_tests/fast/css/CSSPrimitiveValue-exceptions.html
-/sdcard/android/layout_tests/fast/css/empty-script.html
-/sdcard/android/layout_tests/fast/css/mask-missing-image-crash.html
-/sdcard/android/layout_tests/fast/css/parse-timing-function-crash.html
-/sdcard/android/layout_tests/fast/css/background-position-inherit.html
-/sdcard/android/layout_tests/fast/css/readonly-pseudoclass-opera-003.html
-/sdcard/android/layout_tests/fast/css/font-family-builtins.html
-/sdcard/android/layout_tests/fast/css/remove-shorthand.html
-/sdcard/android/layout_tests/fast/css/overflow-property.html
-/sdcard/android/layout_tests/fast/css/pseudo-required-optional-005.html
-/sdcard/android/layout_tests/fast/css/min-device-aspect-ratio.html
-/sdcard/android/layout_tests/fast/css/nested-rule-parent-sheet.html
-/sdcard/android/layout_tests/fast/css/case-transform.html
-/sdcard/android/layout_tests/fast/css/number-parsing-crash-2.html
-/sdcard/android/layout_tests/fast/css/matrix-as-function-crash.html
-/sdcard/android/layout_tests/fast/css/pseudo-required-optional-002.html
-/sdcard/android/layout_tests/fast/css/attr-parsing.html
-/sdcard/android/layout_tests/fast/css/font-family-initial.html
-/sdcard/android/layout_tests/fast/css/small-caps-crash.html
-/sdcard/android/layout_tests/fast/css/max-height-and-max-width.html
-/sdcard/android/layout_tests/fast/css/legacy-opacity-styles.html
-/sdcard/android/layout_tests/fast/css/transition-timing-function.html
-/sdcard/android/layout_tests/fast/block/positioning/absolute-in-inline-rtl-4.html
-/sdcard/android/layout_tests/fast/block/float/selection-gap-clip-out-tiger-crash.html
-/sdcard/android/layout_tests/fast/block/float/crash-on-absolute-positioning.html
-/sdcard/android/layout_tests/fast/block/float/crash-replaced-display-block.html
-/sdcard/android/layout_tests/fast/parser/implicit-head-in-fragment-crash.html
-/sdcard/android/layout_tests/fast/parser/smart-quotes-in-tag.html
-/sdcard/android/layout_tests/fast/parser/entity-comment-in-iframe.html
-/sdcard/android/layout_tests/fast/parser/remove-node-stack.html
-/sdcard/android/layout_tests/fast/parser/remove-current-node-parent.html
-/sdcard/android/layout_tests/fast/parser/entity-end-iframe-tag.html
-/sdcard/android/layout_tests/fast/parser/nsup-entity.html
-/sdcard/android/layout_tests/fast/parser/block-nesting-cap.html
-/sdcard/android/layout_tests/fast/parser/residual-style-close-across-n-blocks.html
-/sdcard/android/layout_tests/fast/parser/tag-with-exclamation-point.html
-/sdcard/android/layout_tests/fast/parser/p-in-scope-strict.html
-/sdcard/android/layout_tests/fast/parser/entity-end-style-tag.html
-/sdcard/android/layout_tests/fast/parser/entity-end-xmp-tag.html
-/sdcard/android/layout_tests/fast/parser/external-entities.xml
-/sdcard/android/layout_tests/fast/parser/head-comment.html
-/sdcard/android/layout_tests/fast/parser/test-unicode-characters-in-attribute-name.html
-/sdcard/android/layout_tests/fast/parser/entity-end-textarea-tag.html
-/sdcard/android/layout_tests/fast/parser/script-tag-with-trailing-slash.html
-/sdcard/android/layout_tests/fast/parser/empty-text-resource.html
-/sdcard/android/layout_tests/fast/parser/comment-in-title.html
-/sdcard/android/layout_tests/fast/parser/residual-style-close-across-removed-block.html
-/sdcard/android/layout_tests/fast/parser/entity-comment-in-title.html
-/sdcard/android/layout_tests/fast/parser/entity-end-title-tag.html
-/sdcard/android/layout_tests/fast/parser/head-content-after-head-removal.html
-/sdcard/android/layout_tests/fast/parser/pre-first-line-break.html
-/sdcard/android/layout_tests/fast/parser/number-sign-in-map-name.html
-/sdcard/android/layout_tests/fast/parser/input-textarea-inside-select-element.html
-/sdcard/android/layout_tests/fast/parser/entity-end-script-tag.html
-/sdcard/android/layout_tests/fast/parser/area-in-div.html
-/sdcard/android/layout_tests/fast/parser/entity-surrogate-pairs.html
-/sdcard/android/layout_tests/fast/parser/eightdigithexentity.html
-/sdcard/android/layout_tests/fast/parser/parse-wbr.html
-/sdcard/android/layout_tests/fast/parser/open-comment-in-script-tricky.html
-/sdcard/android/layout_tests/fast/parser/head-element-for-yahoo-player.html
-/sdcard/android/layout_tests/fast/parser/hex-entities-length.html
-/sdcard/android/layout_tests/fast/parser/html-whitespace.html
-/sdcard/android/layout_tests/fast/parser/script-after-frameset-assert.html
-/sdcard/android/layout_tests/fast/parser/comment-in-iframe.html
-/sdcard/android/layout_tests/fast/parser/duplicate-html-body-element-IDs.html
-/sdcard/android/layout_tests/fast/parser/assertion-empty-attribute.html
-/sdcard/android/layout_tests/fast/parser/comment-in-script-tricky.html
-/sdcard/android/layout_tests/fast/parser/rewrite-form.html
-/sdcard/android/layout_tests/fast/parser/entity-comment-in-script-tricky.html
-/sdcard/android/layout_tests/fast/parser/head-parsing-19517.html
-/sdcard/android/layout_tests/fast/parser/entities-in-html.html
-/sdcard/android/layout_tests/fast/parser/remove-parser-current-node.html
-/sdcard/android/layout_tests/fast/parser/rewrite-map.html
-/sdcard/android/layout_tests/fast/parser/strict-img-in-map.html
-/sdcard/android/layout_tests/fast/parser/p-in-scope.html
-/sdcard/android/layout_tests/fast/layers/removed-by-scroll-handler.html
-/sdcard/android/layout_tests/fast/layers/generated-layer-scrollbar-crash.html
-/sdcard/android/layout_tests/fast/layers/zindex-hit-test.html
-/sdcard/android/layout_tests/fast/layers/resize-layer-deletion-crash.html
-/sdcard/android/layout_tests/fast/history/subframe-is-visited.html
-/sdcard/android/layout_tests/fast/loader/early-load-cancel.html
-/sdcard/android/layout_tests/fast/loader/iframe-recursive-synchronous-load.html
-/sdcard/android/layout_tests/fast/loader/local-css-allowed-in-strict-mode.html
-/sdcard/android/layout_tests/fast/loader/url-strip-cr-lf-tab.html
-/sdcard/android/layout_tests/fast/loader/hashchange-event.html
-/sdcard/android/layout_tests/fast/loader/unloadable-script.html
-/sdcard/android/layout_tests/fast/loader/url-parse-1.html
-/sdcard/android/layout_tests/fast/loader/redirect-with-open-subframe-2.html
-/sdcard/android/layout_tests/fast/loader/simultaneous-reloads-assert.html
-/sdcard/android/layout_tests/fast/loader/invalid-charset-on-script-crashes-loader.html
-/sdcard/android/layout_tests/fast/loader/javascript-url-encoding.html
-/sdcard/android/layout_tests/fast/loader/empty-embed-src-attribute.html
-/sdcard/android/layout_tests/fast/loader/charset-parse.html
-/sdcard/android/layout_tests/fast/loader/meta-refresh-vs-open.html
-/sdcard/android/layout_tests/fast/loader/submit-form-while-parsing-2.html
-/sdcard/android/layout_tests/fast/loader/url-data-replace-backslash.html
-/sdcard/android/layout_tests/fast/loader/redirect-with-open-subframe.html
-/sdcard/android/layout_tests/fast/loader/empty-ref-versus-no-ref.html
-/sdcard/android/layout_tests/fast/loader/javascript-url-encoding-2.html
-/sdcard/android/layout_tests/fast/loader/window-clearing.html
-/sdcard/android/layout_tests/fast/loader/frame-creation-removal.html
-/sdcard/android/layout_tests/fast/loader/external-script-URL-location.html
-/sdcard/android/layout_tests/fast/loader/link-no-URL.html
-/sdcard/android/layout_tests/fast/loader/loadInProgress.html
-/sdcard/android/layout_tests/fast/loader/inherit-charset-to-empty-frame.html
-/sdcard/android/layout_tests/fast/loader/font-face-empty.html
-/sdcard/android/layout_tests/fast/loader/goto-anchor-infinite-layout.html
-/sdcard/android/layout_tests/fast/loader/file-URL-with-port-number.html
-/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-default-attributes.html
-/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-missing-file-exception.html
-/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-invalid-values.html
-/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-html-response-encoding.html
-/sdcard/android/layout_tests/fast/xmlhttprequest/null-document-xmlhttprequest-open.html
-/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-nonexistent-file.html
-/sdcard/android/layout_tests/fast/xmlhttprequest/xmlhttprequest-open-after-iframe-onload-remove-self.html
-/sdcard/android/layout_tests/fast/canvas/pattern-with-transform.html
-/sdcard/android/layout_tests/fast/canvas/gradient-addColorStop-with-invalid-color.html
-/sdcard/android/layout_tests/fast/canvas/canvas-gradient-without-path.html
-/sdcard/android/layout_tests/fast/canvas/radialGradient-infinite-values.html
-/sdcard/android/layout_tests/fast/canvas/drawImage-with-negative-source-destination.html
-/sdcard/android/layout_tests/fast/canvas/drawImage-with-invalid-args.html
-/sdcard/android/layout_tests/fast/canvas/canvas-stroke-empty-fill.html
-/sdcard/android/layout_tests/fast/canvas/canvas-lineWidth.html
-/sdcard/android/layout_tests/fast/canvas/access-zero-sized-canvas.html
-/sdcard/android/layout_tests/fast/canvas/script-inside-canvas-fallback.html
-/sdcard/android/layout_tests/fast/canvas/unclosed-canvas-2.html
-/sdcard/android/layout_tests/fast/canvas/create-pattern-does-not-crash.html
-/sdcard/android/layout_tests/fast/canvas/gradient-with-clip.html
-/sdcard/android/layout_tests/fast/canvas/canvas-hides-fallback.html
-/sdcard/android/layout_tests/fast/canvas/arc-crash.html
-/sdcard/android/layout_tests/fast/canvas/canvas-modify-emptyPath.html
-/sdcard/android/layout_tests/fast/canvas/unclosed-canvas-4.html
-/sdcard/android/layout_tests/fast/canvas/canvas-invalid-fillstyle.html
-/sdcard/android/layout_tests/fast/canvas/unclosed-canvas-1.html
-/sdcard/android/layout_tests/fast/canvas/toDataURL-noData.html
-/sdcard/android/layout_tests/fast/canvas/canvas-with-incorrect-args.html
-/sdcard/android/layout_tests/fast/canvas/canvas-path-with-inf-nan-dimensions.html
-/sdcard/android/layout_tests/fast/canvas/canvas-radial-gradient-spreadMethod.html
-/sdcard/android/layout_tests/fast/canvas/canvas-set-properties-with-non-invertible-ctm.html
-/sdcard/android/layout_tests/fast/canvas/canvas-invalid-strokestyle.html
-/sdcard/android/layout_tests/fast/canvas/canvas-strokeRect.html
-/sdcard/android/layout_tests/fast/canvas/canvas-composite-alpha.html
-/sdcard/android/layout_tests/fast/canvas/canvas-transparency-and-composite.html
-/sdcard/android/layout_tests/fast/canvas/unclosed-canvas-3.html
-/sdcard/android/layout_tests/fast/canvas/linearGradient-infinite-values.html
-/sdcard/android/layout_tests/fast/canvas/canvas-setTransform.html
-/sdcard/android/layout_tests/fast/frames/frame-set-same-location.html
-/sdcard/android/layout_tests/fast/frames/viewsource-unfinished-tags.html
-/sdcard/android/layout_tests/fast/frames/set-unloaded-frame-location.html
-/sdcard/android/layout_tests/fast/frames/negative-remaining-length-crash.html
-/sdcard/android/layout_tests/fast/frames/frame-name-reset.html
-/sdcard/android/layout_tests/fast/frames/frame-set-same-src.html
-/sdcard/android/layout_tests/fast/frames/crash-removed-iframe.html
-/sdcard/android/layout_tests/fast/frames/empty-frame-document.html
-/sdcard/android/layout_tests/fast/frames/viewsource-plain-text-tags.html
-/sdcard/android/layout_tests/fast/frames/repaint-display-none-crash.html
-/sdcard/android/layout_tests/fast/frames/remove-frame-with-scrollbars-crash.html
-/sdcard/android/layout_tests/fast/frames/cross-site-this.html
-/sdcard/android/layout_tests/fast/frames/onload-remove-iframe-crash.html
-/sdcard/android/layout_tests/fast/frames/iframe-set-inner-html.html
-/sdcard/android/layout_tests/fast/frames/iframe-remove-after-id-change.html
-/sdcard/android/layout_tests/fast/frames/iframe-target.html
-/sdcard/android/layout_tests/fast/frames/viewsource-link-on-href-value.html
-/sdcard/android/layout_tests/fast/frames/hover-timer-crash.html
-/sdcard/android/layout_tests/fast/frames/iframe-no-src-set-location.html
-/sdcard/android/layout_tests/fast/frames/iframe-set-same-src.html
-/sdcard/android/layout_tests/fast/frames/iframe-double-attach.html
-/sdcard/android/layout_tests/fast/frames/iframe-set-same-location.html
-/sdcard/android/layout_tests/fast/frames/location-change.html
-/sdcard/android/layout_tests/fast/frames/frame-base-url.html
-/sdcard/android/layout_tests/fast/frames/iframe-display-none.html
-/sdcard/android/layout_tests/fast/frames/javascript-url-as-framesrc-crash.html
-/sdcard/android/layout_tests/fast/frames/frame-limit.html
-/sdcard/android/layout_tests/fast/frames/frame-display-none-focus.html
-/sdcard/android/layout_tests/fast/reflections/teardown-crash.html
-/sdcard/android/layout_tests/fast/reflections/reflection-computed-style.html
-/sdcard/android/layout_tests/fast/reflections/reflection-overflow-scroll.html
-/sdcard/android/layout_tests/http/tests/multipart/win-boundary-crash.html
-/sdcard/android/layout_tests/http/tests/multipart/stop-crash.html
-/sdcard/android/layout_tests/http/tests/mime/standard-mode-loads-stylesheet-with-text-css-and-invalid-type.html
-/sdcard/android/layout_tests/http/tests/mime/standard-mode-loads-stylesheet-with-empty-content-type.html
-/sdcard/android/layout_tests/http/tests/mime/standard-mode-loads-stylesheet-with-charset-and-css-extension.html
-/sdcard/android/layout_tests/http/tests/mime/standard-mode-loads-stylesheet-with-charset.html
-/sdcard/android/layout_tests/http/tests/local/style-access-before-stylesheet-loaded.html
-/sdcard/android/layout_tests/http/tests/local/stylesheet-and-script-load-order-http.html
-/sdcard/android/layout_tests/http/tests/local/link-stylesheet-preferred.html
-/sdcard/android/layout_tests/http/tests/local/stylesheet-and-script-load-order.html
-/sdcard/android/layout_tests/http/tests/misc/uncacheable-script-repeated.html
-/sdcard/android/layout_tests/http/tests/misc/embedCrasher.html
-/sdcard/android/layout_tests/http/tests/misc/multiple-submit.html
-/sdcard/android/layout_tests/http/tests/misc/empty-file-formdata.html
-/sdcard/android/layout_tests/http/tests/misc/submit-post-in-utf7.html
-/sdcard/android/layout_tests/http/tests/misc/text-refresh.html
-/sdcard/android/layout_tests/http/tests/misc/window-open-then-write.html
-/sdcard/android/layout_tests/http/tests/misc/submit-post-in-utf16be.html
-/sdcard/android/layout_tests/http/tests/misc/frame-default-enc-same-domain.html
-/sdcard/android/layout_tests/http/tests/misc/submit-post-in-utf32le.html
-/sdcard/android/layout_tests/http/tests/misc/iframe-domain-test.html
-/sdcard/android/layout_tests/http/tests/misc/frame-default-enc-different-domain.html
-/sdcard/android/layout_tests/http/tests/misc/css-accept-any-type.html
-/sdcard/android/layout_tests/http/tests/misc/url-in-utf7.html
-/sdcard/android/layout_tests/http/tests/misc/submit-get-in-utf32be.html
-/sdcard/android/layout_tests/http/tests/misc/meta-refresh-stray-single-quote.html
-/sdcard/android/layout_tests/http/tests/misc/canvas-pattern-from-incremental-image.html
-/sdcard/android/layout_tests/http/tests/misc/submit-get-in-utf16le.html
-/sdcard/android/layout_tests/http/tests/misc/url-in-utf32be.html
-/sdcard/android/layout_tests/http/tests/misc/timer-vs-loading.html
-/sdcard/android/layout_tests/http/tests/misc/font-face-in-multiple-segmented-faces.html
-/sdcard/android/layout_tests/http/tests/misc/url-in-utf16le.html
-/sdcard/android/layout_tests/http/tests/misc/refresh-meta-with-newline.html
-/sdcard/android/layout_tests/http/tests/misc/post-submit-button.html
-/sdcard/android/layout_tests/http/tests/misc/redirect-to-about-blank.html
-/sdcard/android/layout_tests/http/tests/misc/javascript-url-stop-loaders.html
-/sdcard/android/layout_tests/http/tests/misc/iframe-invalid-source-crash.html
-/sdcard/android/layout_tests/http/tests/misc/slow-preload-cancel.html
-/sdcard/android/layout_tests/http/tests/misc/object-image-error-with-onload.html
-/sdcard/android/layout_tests/http/tests/misc/image-error.html
-/sdcard/android/layout_tests/http/tests/misc/referrer.html
-/sdcard/android/layout_tests/http/tests/misc/cached-scripts.html
-/sdcard/android/layout_tests/http/tests/misc/empty-cookie.html
-/sdcard/android/layout_tests/http/tests/misc/submit-post-in-utf32be.html
-/sdcard/android/layout_tests/http/tests/misc/missing-style-sheet.html
-/sdcard/android/layout_tests/http/tests/misc/submit-post-in-utf16le.html
-/sdcard/android/layout_tests/http/tests/misc/submit-get-in-utf16be.html
-/sdcard/android/layout_tests/http/tests/misc/DOMContentLoaded-event.html
-/sdcard/android/layout_tests/http/tests/misc/onload-remove-iframe-crash-2.html
-/sdcard/android/layout_tests/http/tests/misc/submit-get-in-utf32le.html
-/sdcard/android/layout_tests/http/tests/misc/object-image-error.html
-/sdcard/android/layout_tests/http/tests/misc/createElementNamespace3.html
-/sdcard/android/layout_tests/http/tests/misc/url-in-utf16be.html
-/sdcard/android/layout_tests/http/tests/misc/url-in-utf32le.html
-/sdcard/android/layout_tests/http/tests/misc/crash-multiple-family-fontface.html
-/sdcard/android/layout_tests/http/tests/misc/BOM-override-script.html
-/sdcard/android/layout_tests/http/tests/misc/createElementNamespace1.xml
-/sdcard/android/layout_tests/http/tests/workers/text-encoding.html
-/sdcard/android/layout_tests/http/tests/workers/worker-redirect.html
-/sdcard/android/layout_tests/http/tests/workers/worker-importScripts.html
-/sdcard/android/layout_tests/http/tests/cookies/double-quoted-value-with-semi-colon.html
-/sdcard/android/layout_tests/http/tests/uri/resolve-encoding-relative.html
-/sdcard/android/layout_tests/http/tests/uri/escaped-entity.html
-/sdcard/android/layout_tests/http/tests/uri/utf8-path.html
-/sdcard/android/layout_tests/http/tests/navigation/changing-frame-hierarchy-in-onload.html
-/sdcard/android/layout_tests/http/tests/navigation/fallback-anchor-reload.html
-/sdcard/android/layout_tests/http/tests/navigation/back-send-referrer.html
-/sdcard/android/layout_tests/http/tests/incremental/slow-utf8-css.html
-/sdcard/android/layout_tests/http/tests/incremental/frame-focus-before-load.html
-/sdcard/android/layout_tests/http/tests/appcache/crash-when-navigating-away-then-back.html
-/sdcard/android/layout_tests/http/tests/appcache/offline-access.html
-/sdcard/android/layout_tests/http/tests/appcache/update-cache.html
-/sdcard/android/layout_tests/http/tests/appcache/manifest-with-empty-file.html
-/sdcard/android/layout_tests/http/tests/appcache/simple.html
-/sdcard/android/layout_tests/http/tests/appcache/wrong-signature-2.html
-/sdcard/android/layout_tests/http/tests/appcache/top-frame-3.html
-/sdcard/android/layout_tests/http/tests/appcache/online-whitelist.html
-/sdcard/android/layout_tests/http/tests/appcache/fallback.html
-/sdcard/android/layout_tests/http/tests/appcache/different-origin-manifest.html
-/sdcard/android/layout_tests/http/tests/appcache/empty-manifest.html
-/sdcard/android/layout_tests/http/tests/appcache/manifest-redirect.html
-/sdcard/android/layout_tests/http/tests/appcache/navigating-away-while-cache-attempt-in-progress.html
-/sdcard/android/layout_tests/http/tests/appcache/top-frame-4.html
-/sdcard/android/layout_tests/http/tests/appcache/wrong-signature.html
-/sdcard/android/layout_tests/http/tests/appcache/fail-on-update.html
-/sdcard/android/layout_tests/http/tests/appcache/foreign-iframe-main.html
-/sdcard/android/layout_tests/http/tests/appcache/xhr-foreign-resource.html
-/sdcard/android/layout_tests/http/tests/appcache/manifest-containing-itself.html
-/sdcard/android/layout_tests/http/tests/appcache/resource-redirect.html
-/sdcard/android/layout_tests/http/tests/appcache/idempotent-update.html
-/sdcard/android/layout_tests/http/tests/appcache/top-frame-1.html
-/sdcard/android/layout_tests/http/tests/appcache/main-resource-hash.html
-/sdcard/android/layout_tests/http/tests/appcache/manifest-parsing.html
-/sdcard/android/layout_tests/http/tests/appcache/404-manifest.html
-/sdcard/android/layout_tests/http/tests/appcache/wrong-content-type.html
-/sdcard/android/layout_tests/http/tests/appcache/resource-redirect-2.html
-/sdcard/android/layout_tests/http/tests/appcache/top-frame-2.html
-/sdcard/android/layout_tests/http/tests/appcache/404-resource.html
-/sdcard/android/layout_tests/http/tests/appcache/remove-cache.html
-/sdcard/android/layout_tests/http/tests/appcache/manifest-redirect-2.html
-/sdcard/android/layout_tests/http/tests/appcache/reload.html
-/sdcard/android/layout_tests/http/tests/appcache/cyrillic-uri.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/security-context-alias.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/security-context-write.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/security-context-grandchildren-alias.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/security-context-with-base-tag.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/security-context.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/window-open-self-about-blank.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/security-context-grandchildren.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/security-context-window-open.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/security-context-grandchildren-write-lexical.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/security-context-grandchildren-lexical.html
-/sdcard/android/layout_tests/http/tests/security/aboutBlank/security-context-writeln.html
-/sdcard/android/layout_tests/http/tests/security/cookies/document-open.html
-/sdcard/android/layout_tests/http/tests/security/cookies/create-document.html
-/sdcard/android/layout_tests/http/tests/security/cookies/assign-document-url.html
-/sdcard/android/layout_tests/http/tests/security/cookies/basic.html
-/sdcard/android/layout_tests/http/tests/security/cookies/base-tag.html
-/sdcard/android/layout_tests/http/tests/security/cookies/base-about-blank.html
-/sdcard/android/layout_tests/http/tests/security/cookies/xmlhttprequest.html
-/sdcard/android/layout_tests/http/tests/security/listener/xss-JSTargetNode-onclick-shortcut.html
-/sdcard/android/layout_tests/http/tests/security/listener/xss-XMLHttpRequest-shortcut.html
-/sdcard/android/layout_tests/http/tests/security/listener/xss-JSTargetNode-onclick-addEventListener.html
-/sdcard/android/layout_tests/http/tests/security/listener/xss-XMLHttpRequest-addEventListener.html
-/sdcard/android/layout_tests/http/tests/security/MessagePort/event-listener-context.html
-/sdcard/android/layout_tests/http/tests/security/postMessage/delivery-order.html
-/sdcard/android/layout_tests/http/tests/security/postMessage/data-url-sends-null-origin.html
-/sdcard/android/layout_tests/http/tests/security/postMessage/origin-unaffected-by-base-tag.html
-/sdcard/android/layout_tests/http/tests/security/postMessage/origin-unaffected-by-document-domain.html
-/sdcard/android/layout_tests/http/tests/security/postMessage/javascript-page-still-sends-origin.html
-/sdcard/android/layout_tests/http/tests/security/postMessage/invalid-origin-throws-exception.html
-/sdcard/android/layout_tests/http/tests/security/postMessage/target-origin.html
-/sdcard/android/layout_tests/http/tests/security/frameNavigation/context-for-window-open.html
-/sdcard/android/layout_tests/http/tests/security/frameNavigation/context-for-location.html
-/sdcard/android/layout_tests/http/tests/security/frameNavigation/not-opener.html
-/sdcard/android/layout_tests/http/tests/security/frameNavigation/opener.html
-/sdcard/android/layout_tests/http/tests/security/frameNavigation/context-for-location-assign.html
-/sdcard/android/layout_tests/http/tests/security/frameNavigation/context-for-location-href.html
-/sdcard/android/layout_tests/http/tests/security/frameNavigation/xss-ALLOWED-parent-navigation-change.html
-/sdcard/android/layout_tests/http/tests/security/originHeader/origin-header-for-get.html
-/sdcard/android/layout_tests/http/tests/security/originHeader/origin-header-for-https.html
-/sdcard/android/layout_tests/http/tests/security/originHeader/origin-header-for-post.html
-/sdcard/android/layout_tests/http/tests/security/originHeader/origin-header-for-data.html
-/sdcard/android/layout_tests/http/tests/security/xss-DENIED-assign-location-hash.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-history-prototype.html
-/sdcard/android/layout_tests/http/tests/security/xss-DENIED-synchronous-form.html
-/sdcard/android/layout_tests/http/tests/security/canvas-remote-read-redirect-to-remote-image.html
-/sdcard/android/layout_tests/http/tests/security/xss-DENIED-assign-location-nonstandardProperty.html
-/sdcard/android/layout_tests/http/tests/security/xss-DENIED-assign-location-pathname.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-frames.html
-/sdcard/android/layout_tests/http/tests/security/object-literals.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-location-prototype.html
-/sdcard/android/layout_tests/http/tests/security/xss-DENIED-assign-location-search.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-selection.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-name-getter.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-call.html
-/sdcard/android/layout_tests/http/tests/security/xss-DENIED-assign-location-reload.html
-/sdcard/android/layout_tests/http/tests/security/xss-DENIED-invalid-domain-change.html
-/sdcard/android/layout_tests/http/tests/security/canvas-remote-read-remote-image.html
-/sdcard/android/layout_tests/http/tests/security/xss-DENIED-assign-location-protocol.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-first-time.html
-/sdcard/android/layout_tests/http/tests/security/xss-eval.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-DOMImplementation.html
-/sdcard/android/layout_tests/http/tests/security/xss-DENIED-assign-location-hostname.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-custom.html
-/sdcard/android/layout_tests/http/tests/security/xss-DENIED-assign-location-host.html
-/sdcard/android/layout_tests/http/tests/security/cross-frame-access-callback-explicit-domain-ALLOW.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/workers/xmlhttprequest-file-not-found.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/workers/abort-exception-assert.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/workers/close.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/010.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/002.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/012.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/004.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/014.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/018.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/002-simple.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/001.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/011.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/003.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/013.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/005.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/015.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/web-apps/007.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/cross-site-denied-response.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/encode-request-url.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-allow-async.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-non-simple-allow.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/inject-header.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-LSProgressEvent-ProgressEvent-should-match.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/origin-header-same-origin-post-async.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-denied.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/origin-header-cross-origin-post-sync.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getAllRequestHeaders.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-sync.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/binary-x-user-defined.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/onloadstart-event.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-no-content-length-onProgress.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/readystatechange.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-contenttype-empty.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-post-fail-non-simple-content-type.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-forbidden-methods-exception.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-invalidation-by-method.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/serialize-document.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/onerror-event.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/close-window.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/redirect-cross-origin-post-sync.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/detaching-frame-2.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/encode-request-url-2.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/set-dangerous-headers.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/event-target.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-addEventListener-onProgress.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/send-on-abort.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/document-domain-set.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-timeout.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-responseXML-exception.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/cross-site-denied-response-sync.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/upload-onloadstart-event.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/supported-xml-content-types.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/simple-cross-origin-denied-events.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/request-encoding.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/zero-length-response.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/connection-error-sync.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-allow-access-control-origin-header-data-url.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache-invalidation-by-header.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/redirect-cross-origin.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-allow-star.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-crlf-getAllResponseHeader.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/event-listener-gc.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/interactive-state.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/state-after-network-error.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/abort-crash.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/get-dangerous-headers.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-image-not-loaded.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/exceptions.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-test-send-flag.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/origin-header-cross-origin-post-async.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/referer.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-invalidHeader-getRequestHeader.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/infoOnProgressEvent.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-allow-access-control-origin-header.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/docLoaderFrame.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/simple-cross-origin-denied-events-sync.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/post-content-type.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/onabort-event.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/origin-header-same-origin-get-async.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/detaching-frame.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/redirect-cross-origin-sync.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/zero-length-response-sync.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/access-control-basic-denied-preflight-cache.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/authorization-header.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-post-crash.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/origin-header-cross-origin-get-sync.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/origin-header-cross-origin-get-async.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/redirect-cross-origin-sync-double.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-abort-readyState-shouldDispatchEvent.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-responseText-exception.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/redirect-cross-origin-2.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-abort-readyState-shouldNotDispatchEvent.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/status-after-abort.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/XMLHttpRequestException.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-onProgress-open-should-zero-length.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/broken-xml-encoding.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/simple-cross-origin-denied-events-post.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/extra-parameters.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-multiple-open.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getRequestHeader.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/origin-header-same-origin-post-sync.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/cross-site-denied-response-sync-2.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/request-from-popup.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/redirect-cross-origin-post.html
-/sdcard/android/layout_tests/http/tests/xmlhttprequest/simple-cross-origin-progress-events.html
-/sdcard/android/layout_tests/http/tests/messaging/cross-domain-message-event-dispatch.html
-/sdcard/android/layout_tests/http/tests/messaging/cross-domain-message-send.html
-/sdcard/android/layout_tests/media/constructors.html
-/sdcard/android/layout_tests/media/video-poster.html
-/sdcard/android/layout_tests/media/video-source-media.html
-/sdcard/android/layout_tests/media/video-controls-with-mutation-event-handler.html
-/sdcard/android/layout_tests/media/video-src-set.html
-/sdcard/android/layout_tests/media/video-display-none-crash.html
-/sdcard/android/layout_tests/media/video-width-height.html
-/sdcard/android/layout_tests/media/video-source.html
-/sdcard/android/layout_tests/media/fallback.html
-/sdcard/android/layout_tests/media/remove-from-document-no-load.html
-/sdcard/android/layout_tests/media/before-load-member-access.html
-/sdcard/android/layout_tests/media/video-play-pause-events.html
-/sdcard/android/layout_tests/media/media-constants.html
-/sdcard/android/layout_tests/media/video-src-source.html
-/sdcard/android/layout_tests/media/video-play-pause-exception.html
-/sdcard/android/layout_tests/media/video-dom-autobuffer.html
-/sdcard/android/layout_tests/media/video-seek-no-src-exception.html
-/sdcard/android/layout_tests/media/video-src.html
-/sdcard/android/layout_tests/plugins/createScriptableObject-before-start.html
-/sdcard/android/layout_tests/plugins/return-error-from-new-stream-callback-in-full-frame-plugin.html
-/sdcard/android/layout_tests/scrollbars/scrollbar-crash-on-refresh.html
-/sdcard/android/layout_tests/scrollbars/scrollbar-miss-mousemove.html
-/sdcard/android/layout_tests/security/autocomplete-cleared-on-back.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/complex-keys.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/clear.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/enumerate-storage.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/remove-item.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/string-conversion.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/simple-events.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/delete-removal.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/window-open.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/index-get-and-set.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/onstorage-attribute-setattribute.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/onstorage-attribute-setwindow.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/simple-usage.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/onstorage-attribute-markup.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/enumerate-with-length-and-key.html
-/sdcard/android/layout_tests/storage/domstorage/localstorage/complex-values.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/index-get-and-set.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/onstorage-attribute-setattribute.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/onstorage-attribute-setwindow.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/clear.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/enumerate-storage.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/string-conversion.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/simple-usage.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/simple-events.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/onstorage-attribute-markup.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/enumerate-with-length-and-key.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/delete-removal.html
-/sdcard/android/layout_tests/storage/domstorage/sessionstorage/window-open.html
-/sdcard/android/layout_tests/storage/domstorage/window-attributes-exist.html
-/sdcard/android/layout_tests/storage/hash-change-with-xhr.html
-/sdcard/android/layout_tests/storage/open-database-empty-version.html
-/sdcard/android/layout_tests/storage/quota-tracking.html
-/sdcard/android/layout_tests/storage/close-during-stress-test.html
-/sdcard/android/layout_tests/storage/database-lock-after-reload.html
-/sdcard/android/layout_tests/storage/multiple-databases-garbage-collection.html
-/sdcard/android/layout_tests/storage/empty-statement.html
-/sdcard/android/layout_tests/storage/multiple-transactions.html
-/sdcard/android/layout_tests/storage/success-callback.html
-/sdcard/android/layout_tests/storage/transaction-error-callback.html
-/sdcard/android/layout_tests/storage/sql-data-types.html
-/sdcard/android/layout_tests/storage/transaction-callback-exception-crash.html
-/sdcard/android/layout_tests/transforms/2d/transform-2d.html
-/sdcard/android/layout_tests/transforms/2d/compound-2d-transforms.html
-/sdcard/android/layout_tests/transforms/2d/computed-style-origin.html
-/sdcard/android/layout_tests/transforms/2d/transform-accuracy.html
-/sdcard/android/layout_tests/transforms/2d/transform-value-types.html
-/sdcard/android/layout_tests/transforms/3d/hit-testing/hit-preserves-3d.html
-/sdcard/android/layout_tests/transitions/cancel-transition.html
-/sdcard/android/layout_tests/transitions/transition-end-event-all-properties.html
-/sdcard/android/layout_tests/transitions/transition-end-event-window.html
-/sdcard/android/layout_tests/transitions/transition-end-event-multiple-03.html
-/sdcard/android/layout_tests/transitions/text-indent-transition.html
-/sdcard/android/layout_tests/transitions/transition-end-event-set-none.html
-/sdcard/android/layout_tests/transitions/zero-duration-without-units.html
-/sdcard/android/layout_tests/transitions/min-max-width-height-transitions.html
-/sdcard/android/layout_tests/transitions/shorthand-transitions.html
-/sdcard/android/layout_tests/transitions/mask-transitions.html
-/sdcard/android/layout_tests/transitions/zero-duration-with-non-zero-delay-start.html
-/sdcard/android/layout_tests/transitions/zero-duration-in-list.html
-/sdcard/android/layout_tests/transitions/shorthand-border-transitions.html
-/sdcard/android/layout_tests/transitions/inherit-other-props.html
-/sdcard/android/layout_tests/transitions/transition-end-event-multiple-04.html
-/sdcard/android/layout_tests/transitions/background-transitions.html
-/sdcard/android/layout_tests/transitions/transition-duration-cleared-in-transitionend-crash.html
-/sdcard/android/layout_tests/transitions/interrupt-zero-duration.html
-/sdcard/android/layout_tests/transitions/retargetted-transition.html
-/sdcard/android/layout_tests/transitions/transition-end-event-left.html
-/sdcard/android/layout_tests/transitions/override-transition-crash.html
-/sdcard/android/layout_tests/transitions/transition-end-event-multiple-01.html
-/sdcard/android/layout_tests/transitions/matched-transform-functions.html
-/sdcard/android/layout_tests/transitions/transform-op-list-match.html
-/sdcard/android/layout_tests/transitions/transition-end-event-container.html
-/sdcard/android/layout_tests/transitions/interrupt-transform-transition.html
-/sdcard/android/layout_tests/transitions/transition-end-event-nested.html
-/sdcard/android/layout_tests/transitions/change-values-during-transition.html
-/sdcard/android/layout_tests/transitions/transition-end-event-attributes.html
-/sdcard/android/layout_tests/transitions/inherit.html
-/sdcard/android/layout_tests/transitions/transition-end-event-create.html
-/sdcard/android/layout_tests/transitions/shadow.html
-/sdcard/android/layout_tests/transitions/transition-end-event-multiple-02.html
-/sdcard/android/layout_tests/transitions/transition-end-event-transform.html
-/sdcard/android/layout_tests/transitions/start-transform-transition.html
-/sdcard/android/layout_tests/transitions/transition-timing-function.html
-/sdcard/android/layout_tests/transitions/transform-op-list-no-match.html
-/sdcard/android/layout_tests/transitions/bad-transition-shorthand-crash.html
-/sdcard/android/layout_tests/transitions/transition-end-event-destroy-renderer.html
-/sdcard/android/layout_tests/transitions/extra-transition.html
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/010.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/001.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/002.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/003.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/004.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/005.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/006.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/007.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/008.xml
-/sdcard/android/layout_tests/traversal/hixie-node-iterator/009.xml
-/sdcard/android/layout_tests/traversal/node-iterator-003.html
-/sdcard/android/layout_tests/traversal/node-iterator-005.html
-/sdcard/android/layout_tests/traversal/node-iterator-007.html
-/sdcard/android/layout_tests/traversal/tree-walker-001.html
-/sdcard/android/layout_tests/traversal/node-iterator-009.html
-/sdcard/android/layout_tests/traversal/tree-walker-003.html
-/sdcard/android/layout_tests/traversal/tree-walker-005.html
-/sdcard/android/layout_tests/traversal/exception-forwarding.html
-/sdcard/android/layout_tests/traversal/stay-within-root.html
-/sdcard/android/layout_tests/traversal/node-iterator-002.html
-/sdcard/android/layout_tests/traversal/node-iterator-004.html
-/sdcard/android/layout_tests/traversal/node-iterator-006.html
-/sdcard/android/layout_tests/traversal/node-iterator-006a.html
-/sdcard/android/layout_tests/traversal/tree-walker-002.html
-/sdcard/android/layout_tests/traversal/node-iterator-008.html
-/sdcard/android/layout_tests/traversal/tree-walker-004.html
-/sdcard/android/layout_tests/traversal/tree-walker-006.html
-/sdcard/android/layout_tests/traversal/size-zero-run.html
-/sdcard/android/layout_tests/traversal/acid3-test-2.html
-/sdcard/android/layout_tests/traversal/tree-walker-filter-1.html
-/sdcard/android/layout_tests/traversal/node-iterator-001.html
diff --git a/tests/DumpRenderTree/assets/run_layout_tests.py b/tests/DumpRenderTree/assets/run_layout_tests.py
deleted file mode 100755
index 21c02ec..0000000
--- a/tests/DumpRenderTree/assets/run_layout_tests.py
+++ /dev/null
@@ -1,320 +0,0 @@
-#!/usr/bin/python
-
-"""Run layout tests using Android emulator and instrumentation.
-
-  First, you need to get an SD card or sdcard image that has layout tests on it.
-  Layout tests are in following directory:
-    /sdcard/webkit/layout_tests
-  For example, /sdcard/webkit/layout_tests/fast
-
-  Usage:
-    Run all tests under fast/ directory:
-      run_layout_tests.py, or
-      run_layout_tests.py fast
-
-    Run all tests under a sub directory:
-      run_layout_tests.py fast/dom
-
-    Run a single test:
-      run_layout_tests.py fast/dom/
-
-  After a merge, if there are changes of layout tests in SD card, you need to
-  use --refresh-test-list option *once* to re-generate test list on the card.
-
-  Some other options are:
-    --rebaseline generates expected layout tests results under /sdcard/webkit/expected_result/
-    --time-out-ms (default is 8000 millis) for each test
-    --adb-options="-e" passes option string to adb
-    --results-directory=..., (default is ./layout-test-results) directory name under which results are stored.
-    --js-engine the JavaScript engine currently in use, determines which set of Android-specific expected results we should use, should be 'jsc' or 'v8'
-"""
-
-import logging
-import optparse
-import os
-import subprocess
-import sys
-import time
-
-def CountLineNumber(filename):
-  """Compute the number of lines in a given file.
-
-  Args:
-    filename: a file name related to the current directory.
-  """
-
-  fp = open(os.path.abspath(filename), "r");
-  lines = 0
-  for line in fp.readlines():
-    lines = lines + 1
-  fp.close()
-  return lines
-
-def DumpRenderTreeFinished(adb_cmd):
-  """ Check if DumpRenderTree finished running tests
-
-  Args:
-    output: adb_cmd string
-  """
-
-  # pull /sdcard/webkit/running_test.txt, if the content is "#DONE", it's done
-  shell_cmd_str = adb_cmd + " shell cat /sdcard/webkit/running_test.txt"
-  adb_output = subprocess.Popen(shell_cmd_str, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
-  return adb_output.strip() == "#DONE"
-
-def DiffResults(marker, new_results, old_results, diff_results, strip_reason,
-                new_count_first=True):
-   """ Given two result files, generate diff and
-       write to diff_results file. All arguments are absolute paths
-       to files.
-   """
-   old_file = open(old_results, "r")
-   new_file = open(new_results, "r")
-   diff_file = open(diff_results, "a")
-
-   # Read lines from each file
-   ndict = new_file.readlines()
-   cdict = old_file.readlines()
-
-   # Write marker to diff file
-   diff_file.writelines(marker + "\n")
-   diff_file.writelines("###############\n")
-
-   # Strip reason from result lines
-   if strip_reason is True:
-     for i in range(0, len(ndict)):
-       ndict[i] = ndict[i].split(' ')[0] + "\n"
-     for i in range(0, len(cdict)):
-       cdict[i] = cdict[i].split(' ')[0] + "\n"
-
-   params = {
-       "new": [0, ndict, cdict, "+"],
-       "miss": [0, cdict, ndict, "-"]
-       }
-   if new_count_first:
-     order = ["new", "miss"]
-   else:
-     order = ["miss", "new"]
-
-   for key in order:
-     for line in params[key][1]:
-       if line not in params[key][2]:
-         if line[-1] != "\n":
-           line += "\n";
-         diff_file.writelines(params[key][3] + line)
-         params[key][0] += 1
-
-   logging.info(marker + "  >>> " + str(params["new"][0]) + " new, " +
-                str(params["miss"][0]) + " misses")
-
-   diff_file.writelines("\n\n")
-
-   old_file.close()
-   new_file.close()
-   diff_file.close()
-   return
-
-def CompareResults(ref_dir, results_dir):
-  """Compare results in two directories
-
-  Args:
-    ref_dir: the reference directory having layout results as references
-    results_dir: the results directory
-  """
-  logging.info("Comparing results to " + ref_dir)
-
-  diff_result = os.path.join(results_dir, "layout_tests_diff.txt")
-  if os.path.exists(diff_result):
-    os.remove(diff_result)
-
-  files=["crashed", "failed", "passed", "nontext"]
-  for f in files:
-    result_file_name = "layout_tests_" + f + ".txt"
-    DiffResults(f, os.path.join(results_dir, result_file_name),
-                os.path.join(ref_dir, result_file_name), diff_result,
-                False, f != "passed")
-  logging.info("Detailed diffs are in " + diff_result)
-
-def main(options, args):
-  """Run the tests. Will call sys.exit when complete.
-
-  Args:
-    options: a dictionary of command line options
-    args: a list of sub directories or files to test
-  """
-
-  # Set up logging format.
-  log_level = logging.INFO
-  if options.verbose:
-    log_level = logging.DEBUG
-  logging.basicConfig(level=log_level,
-                      format='%(message)s')
-
-  # Include all tests if none are specified.
-  if not args:
-    path = '/';
-  else:
-    path = ' '.join(args);
-
-  adb_cmd = "adb ";
-  if options.adb_options:
-    adb_cmd += options.adb_options
-
-  # Re-generate the test list if --refresh-test-list is on
-  if options.refresh_test_list:
-    logging.info("Generating test list.");
-    generate_test_list_cmd_str = adb_cmd + " shell am instrument -e class com.android.dumprendertree.LayoutTestsAutoTest#generateTestList -e path \"" + path + "\" -w com.android.dumprendertree/.LayoutTestsAutoRunner"
-    adb_output = subprocess.Popen(generate_test_list_cmd_str, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
-
-    if adb_output.find('Process crashed') != -1:
-       logging.info("Aborting because cannot generate test list.\n" + adb_output)
-       sys.exit(1)
-
-
-  logging.info("Running tests")
-
-  # Count crashed tests.
-  crashed_tests = []
-
-  timeout_ms = '15000'
-  if options.time_out_ms:
-    timeout_ms = options.time_out_ms
-
-  # Run test until it's done
-
-  run_layout_test_cmd_prefix = adb_cmd + " shell am instrument"
-
-  run_layout_test_cmd_postfix = " -e path \"" + path + "\" -e timeout " + timeout_ms
-  if options.rebaseline:
-    run_layout_test_cmd_postfix += " -e rebaseline true"
-
-  # If the JS engine is not specified on the command line, try reading the
-  # JS_ENGINE environment  variable, which is used by the build system in
-  # external/webkit/Android.mk.
-  js_engine = options.js_engine
-  if not js_engine and os.environ.has_key('JS_ENGINE'):
-    js_engine = os.environ['JS_ENGINE']
-  if js_engine:
-    run_layout_test_cmd_postfix += " -e jsengine " + js_engine
-
-  run_layout_test_cmd_postfix += " -w com.android.dumprendertree/.LayoutTestsAutoRunner"
-
-  # Call LayoutTestsAutoTest::startLayoutTests.
-  run_layout_test_cmd = run_layout_test_cmd_prefix + " -e class com.android.dumprendertree.LayoutTestsAutoTest#startLayoutTests" + run_layout_test_cmd_postfix
-
-  adb_output = subprocess.Popen(run_layout_test_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
-  while not DumpRenderTreeFinished(adb_cmd):
-    # Get the running_test.txt
-    logging.error("DumpRenderTree crashed, output:\n" + adb_output)
-
-    shell_cmd_str = adb_cmd + " shell cat /sdcard/webkit/running_test.txt"
-    crashed_test = ""
-    while not crashed_test:
-      (crashed_test, err) = subprocess.Popen(
-          shell_cmd_str, shell=True, stdout=subprocess.PIPE,
-          stderr=subprocess.PIPE).communicate()
-      crashed_test = crashed_test.strip()
-      if not crashed_test:
-        logging.error('Cannot get crashed test name, device offline?')
-        logging.error('stderr: ' + err)
-        logging.error('retrying in 10s...')
-        time.sleep(10)
-
-    logging.info(crashed_test + " CRASHED");
-    crashed_tests.append(crashed_test);
-
-    logging.info("Resuming layout test runner...");
-    # Call LayoutTestsAutoTest::resumeLayoutTests
-    run_layout_test_cmd = run_layout_test_cmd_prefix + " -e class com.android.dumprendertree.LayoutTestsAutoTest#resumeLayoutTests" + run_layout_test_cmd_postfix
-
-    adb_output = subprocess.Popen(run_layout_test_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
-
-  if adb_output.find('INSTRUMENTATION_FAILED') != -1:
-    logging.error("Error happened : " + adb_output)
-    sys.exit(1)
-
-  logging.debug(adb_output);
-  logging.info("Done\n");
-
-  # Pull results from /sdcard
-  results_dir = options.results_directory
-  if not os.path.exists(results_dir):
-    os.makedirs(results_dir)
-  if not os.path.isdir(results_dir):
-    logging.error("Cannot create results dir: " + results_dir);
-    sys.exit(1);
-
-  result_files = ["/sdcard/layout_tests_passed.txt",
-                  "/sdcard/layout_tests_failed.txt",
-                  "/sdcard/layout_tests_ignored.txt",
-                  "/sdcard/layout_tests_nontext.txt"]
-  for file in result_files:
-    shell_cmd_str = adb_cmd + " pull " + file + " " + results_dir
-    adb_output = subprocess.Popen(shell_cmd_str, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0]
-    logging.debug(adb_output)
-
-  # Create the crash list.
-  fp = open(results_dir + "/layout_tests_crashed.txt", "w");
-  for crashed_test in crashed_tests:
-    fp.writelines(crashed_test + '\n')
-  fp.close()
-
-  # Count the number of tests in each category.
-  passed_tests = CountLineNumber(results_dir + "/layout_tests_passed.txt")
-  logging.info(str(passed_tests) + " passed")
-  failed_tests = CountLineNumber(results_dir + "/layout_tests_failed.txt")
-  logging.info(str(failed_tests) + " failed")
-  ignored_tests = CountLineNumber(results_dir + "/layout_tests_ignored.txt")
-  logging.info(str(ignored_tests) + " ignored results")
-  crashed_tests = CountLineNumber(results_dir + "/layout_tests_crashed.txt")
-  logging.info(str(crashed_tests) + " crashed")
-  nontext_tests = CountLineNumber(results_dir + "/layout_tests_nontext.txt")
-  logging.info(str(nontext_tests) + " no dumpAsText")
-  logging.info(str(passed_tests + failed_tests + ignored_tests + crashed_tests + nontext_tests) + " TOTAL")
-
-  logging.info("Results are stored under: " + results_dir + "\n")
-
-  # Comparing results to references to find new fixes and regressions.
-  results_dir = os.path.abspath(options.results_directory)
-  ref_dir = options.ref_directory
-
-  # if ref_dir is null, cannonify ref_dir to the script dir.
-  if not ref_dir:
-    script_self = sys.argv[0]
-    script_dir = os.path.dirname(script_self)
-    ref_dir = os.path.join(script_dir, "results")
-
-  ref_dir = os.path.abspath(ref_dir)
-
-  CompareResults(ref_dir, results_dir)
-
-if '__main__' == __name__:
-  option_parser = optparse.OptionParser()
-  option_parser.add_option("", "--rebaseline", action="store_true",
-                           default=False,
-                           help="generate expected results for those tests not having one")
-  option_parser.add_option("", "--time-out-ms",
-                           default=None,
-                           help="set the timeout for each test")
-  option_parser.add_option("", "--verbose", action="store_true",
-                           default=False,
-                           help="include debug-level logging")
-  option_parser.add_option("", "--refresh-test-list", action="store_true",
-                           default=False,
-                           help="re-generate test list, it may take some time.")
-  option_parser.add_option("", "--adb-options",
-                           default=None,
-                           help="pass options to adb, such as -d -e, etc");
-  option_parser.add_option("", "--results-directory",
-                           default="layout-test-results",
-                           help="directory which results are stored.")
-  option_parser.add_option("", "--ref-directory",
-                           default=None,
-                           dest="ref_directory",
-                           help="directory where reference results are stored.")
-  option_parser.add_option("", "--js-engine",
-                           default=None,
-                           help="The JavaScript engine currently in use, which determines which set of Android-specific expected results we should use. Should be 'jsc' or 'v8'.");
-
-  options, args = option_parser.parse_args();
-  main(options, args)
diff --git a/tests/DumpRenderTree/assets/run_page_cycler.py b/tests/DumpRenderTree/assets/run_page_cycler.py
deleted file mode 100755
index f995086..0000000
--- a/tests/DumpRenderTree/assets/run_page_cycler.py
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/usr/bin/python
-
-"""Run page cycler tests using Android instrumentation.
-
-  First, you need to get an SD card or sdcard image that has page cycler tests.
-
-  Usage:
-    Run a single page cycler test:
-      run_page_cycler.py "file:///sdcard/webkit/page_cycler/moz/start.html\?auto=1\&iterations=10"
-"""
-
-import logging
-import optparse
-import os
-import subprocess
-import sys
-import time
-
-
-
-def main(options, args):
-  """Run the tests. Will call sys.exit when complete.
-
-  """
-
-  # Set up logging format.
-  log_level = logging.INFO
-  if options.verbose:
-    log_level = logging.DEBUG
-  logging.basicConfig(level=log_level,
-                      format='%(message)s')
-
-  # Include all tests if none are specified.
-  if not args:
-    print "need a URL, e.g. file:///sdcard/webkit/page_cycler/moz/start.html\?auto=1\&iterations=10"
-    print "  or remote:android-browser-test:80/page_cycler/"
-    sys.exit(1)
-  else:
-    path = ' '.join(args);
-
-  if path[:7] == "remote:":
-    remote_path = path[7:]
-  else:
-    remote_path = None
-
-  adb_cmd = "adb ";
-  if options.adb_options:
-    adb_cmd += options.adb_options
-
-  logging.info("Running the test ...")
-
-  # Count crashed tests.
-  crashed_tests = []
-
-  timeout_ms = '0'
-  if options.time_out_ms:
-    timeout_ms = options.time_out_ms
-
-  # Run test until it's done
-
-  run_load_test_cmd_prefix = adb_cmd + " shell am instrument"
-  run_load_test_cmd_postfix = " -w com.android.dumprendertree/.LayoutTestsAutoRunner"
-
-  # Call LoadTestsAutoTest::runTest.
-  run_load_test_cmd = run_load_test_cmd_prefix + " -e class com.android.dumprendertree.LoadTestsAutoTest#runPageCyclerTest -e timeout " + timeout_ms
-
-  if remote_path:
-    if options.suite:
-      run_load_test_cmd += " -e suite %s -e forward %s " % (options.suite,
-                                                            remote_path)
-    else:
-      print "for network mode, need to specify --suite as well."
-      sys.exit(1)
-    if options.iteration:
-      run_load_test_cmd += " -e iteration %s" % options.iteration
-  else:
-    run_load_test_cmd += " -e path \"%s\" " % path
-
-
-  if options.drawtime:
-    run_load_test_cmd += " -e drawtime true "
-
-  if options.save_image:
-    run_load_test_cmd += " -e saveimage \"%s\"" % options.save_image
-
-  run_load_test_cmd += run_load_test_cmd_postfix
-
-  (adb_output, adb_error) = subprocess.Popen(run_load_test_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
-  fail_flag = False
-  for line in adb_output.splitlines():
-    line = line.strip()
-    if line.find('INSTRUMENTATION_CODE') == 0:
-      if not line[22:] == '-1':
-        fail_flag = True
-        break
-    if (line.find('INSTRUMENTATION_FAILED') != -1 or
-        line.find('Process crashed.') != -1):
-      fail_flag = True
-      break
-  if fail_flag:
-    logging.error("Error happened : " + adb_output)
-    sys.exit(1)
-
-  logging.info(adb_output);
-  logging.info(adb_error);
-  logging.info("Done\n");
-
-  # Pull results from /sdcard/load_test_result.txt
-  results_dir = options.results_directory
-  if not os.path.exists(results_dir):
-    os.makedirs(results_dir)
-  if not os.path.isdir(results_dir):
-    logging.error("Cannot create results dir: " + results_dir)
-    sys.exit(1)
-
-  result_file = "/sdcard/load_test_result.txt"
-  shell_cmd_str = adb_cmd + " pull " + result_file + " " + results_dir
-  (adb_output, err) = subprocess.Popen(
-      shell_cmd_str, shell=True,
-      stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
-  if not os.path.isfile(os.path.join(results_dir, "load_test_result.txt")):
-    logging.error("Failed to pull result file.")
-    logging.error("adb stdout:")
-    logging.error(adb_output)
-    logging.error("adb stderr:")
-    logging.error(err)
-  logging.info("Results are stored under: " + results_dir + "/load_test_result.txt\n")
-
-if '__main__' == __name__:
-  option_parser = optparse.OptionParser()
-  option_parser.add_option("-t", "--time-out-ms",
-                           default=None,
-                           help="set the timeout for each test")
-  option_parser.add_option("-v", "--verbose", action="store_true",
-                           default=False,
-                           help="include debug-level logging")
-  option_parser.add_option("-a", "--adb-options",
-                           default=None,
-                           help="pass options to adb, such as -d -e, etc");
-  option_parser.add_option("-r", "--results-directory",
-                           default="layout-test-results",
-                           help="directory which results are stored.")
-
-  option_parser.add_option("-d", "--drawtime", action="store_true",
-                           default=False,
-                           help="log draw time for each page rendered.")
-
-  option_parser.add_option("-s", "--save-image",
-                           default=None,
-                           help="stores rendered page to a location on device.")
-
-  option_parser.add_option("-u", "--suite",
-                           default=None,
-                           help="(for network mode) specify the suite to"
-                           " run by name")
-
-  option_parser.add_option("-i", "--iteration",
-                           default="5",
-                           help="(for network mode) specify how many iterations"
-                           " to run")
-
-  options, args = option_parser.parse_args();
-  main(options, args)
diff --git a/tests/DumpRenderTree/assets/run_reliability_tests.py b/tests/DumpRenderTree/assets/run_reliability_tests.py
deleted file mode 100755
index 59ac4a3..0000000
--- a/tests/DumpRenderTree/assets/run_reliability_tests.py
+++ /dev/null
@@ -1,276 +0,0 @@
-#!/usr/bin/python2.4
-
-"""Run reliability tests using Android instrumentation.
-
-  A test file consists of list web sites to test is needed as a parameter
-
-  Usage:
-    run_reliability_tests.py path/to/url/list
-"""
-
-import logging
-import optparse
-import os
-import subprocess
-import sys
-import time
-from Numeric import *
-
-TEST_LIST_FILE = "/sdcard/android/reliability_tests_list.txt"
-TEST_STATUS_FILE = "/sdcard/android/reliability_running_test.txt"
-TEST_TIMEOUT_FILE = "/sdcard/android/reliability_timeout_test.txt"
-TEST_LOAD_TIME_FILE = "/sdcard/android/reliability_load_time.txt"
-HTTP_URL_FILE = "urllist_http"
-HTTPS_URL_FILE = "urllist_https"
-NUM_URLS = 25
-
-
-def DumpRenderTreeFinished(adb_cmd):
-  """Check if DumpRenderTree finished running.
-
-  Args:
-    adb_cmd: adb command string
-
-  Returns:
-    True if DumpRenderTree has finished, False otherwise
-  """
-
-  # pull test status file and look for "#DONE"
-  shell_cmd_str = adb_cmd + " shell cat " + TEST_STATUS_FILE
-  adb_output = subprocess.Popen(shell_cmd_str,
-                                shell=True, stdout=subprocess.PIPE,
-                                stderr=subprocess.PIPE).communicate()[0]
-  return adb_output.strip() == "#DONE"
-
-
-def RemoveDeviceFile(adb_cmd, file_name):
-  shell_cmd_str = adb_cmd + " shell rm " + file_name
-  subprocess.Popen(shell_cmd_str,
-                   shell=True, stdout=subprocess.PIPE,
-                   stderr=subprocess.PIPE).communicate()
-
-
-def Bugreport(url, bugreport_dir, adb_cmd):
-  """Pull a bugreport from the device."""
-  bugreport_filename = "%s/reliability_bugreport_%d.txt" % (bugreport_dir,
-                                                            int(time.time()))
-
-  # prepend the report with url
-  handle = open(bugreport_filename, "w")
-  handle.writelines("Bugreport for crash in url - %s\n\n" % url)
-  handle.close()
-
-  cmd = "%s bugreport >> %s" % (adb_cmd, bugreport_filename)
-  os.system(cmd)
-
-
-def ProcessPageLoadTime(raw_log):
-  """Processes the raw page load time logged by test app."""
-  log_handle = open(raw_log, "r")
-  load_times = {}
-
-  for line in log_handle:
-    line = line.strip()
-    pair = line.split("|")
-    if len(pair) != 2:
-      logging.info("Line has more than one '|': " + line)
-      continue
-    if pair[0] not in load_times:
-      load_times[pair[0]] = []
-    try:
-      pair[1] = int(pair[1])
-    except ValueError:
-      logging.info("Lins has non-numeric load time: " + line)
-      continue
-    load_times[pair[0]].append(pair[1])
-
-  log_handle.close()
-
-  # rewrite the average time to file
-  log_handle = open(raw_log, "w")
-  for url, times in load_times.iteritems():
-    # calculate std
-    arr = array(times)
-    avg = average(arr)
-    d = arr - avg
-    std = sqrt(sum(d * d) / len(arr))
-    output = ("%-70s%-10d%-10d%-12.2f%-12.2f%s\n" %
-              (url, min(arr), max(arr), avg, std,
-               array2string(arr)))
-    log_handle.write(output)
-  log_handle.close()
-
-
-def main(options, args):
-  """Send the url list to device and start testing, restart if crashed."""
-
-  # Set up logging format.
-  log_level = logging.INFO
-  if options.verbose:
-    log_level = logging.DEBUG
-  logging.basicConfig(level=log_level,
-                      format="%(message)s")
-
-  # Include all tests if none are specified.
-  if not args:
-    print "Missing URL list file"
-    sys.exit(1)
-  else:
-    path = args[0]
-
-  if not options.crash_file:
-    print "Missing crash file name, use --crash-file to specify"
-    sys.exit(1)
-  else:
-    crashed_file = options.crash_file
-
-  if not options.timeout_file:
-    print "Missing timeout file, use --timeout-file to specify"
-    sys.exit(1)
-  else:
-    timedout_file = options.timeout_file
-
-  if not options.delay:
-    manual_delay = 0
-  else:
-    manual_delay = options.delay
-
-  if not options.bugreport:
-    bugreport_dir = "."
-  else:
-    bugreport_dir = options.bugreport
-  if not os.path.exists(bugreport_dir):
-    os.makedirs(bugreport_dir)
-  if not os.path.isdir(bugreport_dir):
-    logging.error("Cannot create results dir: " + bugreport_dir)
-    sys.exit(1)
-
-  adb_cmd = "adb "
-  if options.adb_options:
-    adb_cmd += options.adb_options + " "
-
-  # push url list to device
-  test_cmd = adb_cmd + " push \"" + path + "\" \"" + TEST_LIST_FILE + "\""
-  proc = subprocess.Popen(test_cmd, shell=True,
-                          stdout=subprocess.PIPE,
-                          stderr=subprocess.PIPE)
-  (adb_output, adb_error) = proc.communicate()
-  if proc.returncode != 0:
-    logging.error("failed to push url list to device.")
-    logging.error(adb_output)
-    logging.error(adb_error)
-    sys.exit(1)
-
-  # clean up previous results
-  RemoveDeviceFile(adb_cmd, TEST_STATUS_FILE)
-  RemoveDeviceFile(adb_cmd, TEST_TIMEOUT_FILE)
-  RemoveDeviceFile(adb_cmd, TEST_LOAD_TIME_FILE)
-
-  logging.info("Running the test ...")
-
-  # Count crashed tests.
-  crashed_tests = []
-
-  if options.time_out_ms:
-    timeout_ms = options.time_out_ms
-
-  # Run test until it's done
-  test_cmd_prefix = adb_cmd + " shell am instrument"
-  test_cmd_postfix = " -w com.android.dumprendertree/.LayoutTestsAutoRunner"
-
-  # Call ReliabilityTestsAutoTest#startReliabilityTests
-  test_cmd = (test_cmd_prefix + " -e class "
-              "com.android.dumprendertree.ReliabilityTest#"
-              "runReliabilityTest -e timeout %s -e delay %s" %
-              (str(timeout_ms), str(manual_delay)))
-
-  if options.logtime:
-    test_cmd += " -e logtime true"
-
-  test_cmd += test_cmd_postfix
-
-  adb_output = subprocess.Popen(test_cmd, shell=True,
-                                stdout=subprocess.PIPE,
-                                stderr=subprocess.PIPE).communicate()[0]
-  while not DumpRenderTreeFinished(adb_cmd):
-    logging.error("DumpRenderTree exited before all URLs are visited.")
-    shell_cmd_str = adb_cmd + " shell cat " + TEST_STATUS_FILE
-    crashed_test = ""
-    while not crashed_test:
-      (crashed_test, err) = subprocess.Popen(
-          shell_cmd_str, shell=True, stdout=subprocess.PIPE,
-          stderr=subprocess.PIPE).communicate()
-      crashed_test = crashed_test.strip()
-      if not crashed_test:
-        logging.error('Cannot get crashed test name, device offline?')
-        logging.error('stderr: ' + err)
-        logging.error('retrying in 10s...')
-        time.sleep(10)
-
-    logging.info(crashed_test + " CRASHED")
-    crashed_tests.append(crashed_test)
-    Bugreport(crashed_test, bugreport_dir, adb_cmd)
-    logging.info("Resuming reliability test runner...")
-
-    adb_output = subprocess.Popen(test_cmd, shell=True, stdout=subprocess.PIPE,
-                                  stderr=subprocess.PIPE).communicate()[0]
-
-  if (adb_output.find("INSTRUMENTATION_FAILED") != -1 or
-      adb_output.find("Process crashed.") != -1):
-    logging.error("Error happened : " + adb_output)
-    sys.exit(1)
-
-  logging.info(adb_output)
-  logging.info("Done\n")
-
-  if crashed_tests:
-    file_handle = open(crashed_file, "w")
-    file_handle.writelines("\n".join(crashed_tests))
-    logging.info("Crashed URL list stored in: " + crashed_file)
-    file_handle.close()
-  else:
-    logging.info("No crash found.")
-
-  # get timeout file from sdcard
-  test_cmd = (adb_cmd + "pull \"" + TEST_TIMEOUT_FILE + "\" \""
-              + timedout_file +  "\"")
-  subprocess.Popen(test_cmd, shell=True, stdout=subprocess.PIPE,
-                   stderr=subprocess.PIPE).communicate()
-
-  if options.logtime:
-    # get logged page load times from sdcard
-    test_cmd = (adb_cmd + "pull \"" + TEST_LOAD_TIME_FILE + "\" \""
-                + options.logtime +  "\"")
-    subprocess.Popen(test_cmd, shell=True, stdout=subprocess.PIPE,
-                     stderr=subprocess.PIPE).communicate()
-    ProcessPageLoadTime(options.logtime)
-
-
-if "__main__" == __name__:
-  option_parser = optparse.OptionParser()
-  option_parser.add_option("-t", "--time-out-ms",
-                           default=60000,
-                           help="set the timeout for each test")
-  option_parser.add_option("-v", "--verbose", action="store_true",
-                           default=False,
-                           help="include debug-level logging")
-  option_parser.add_option("-a", "--adb-options",
-                           default=None,
-                           help="pass options to adb, such as -d -e, etc")
-  option_parser.add_option("-c", "--crash-file",
-                           default="reliability_crashed_sites.txt",
-                           help="the list of sites that cause browser to crash")
-  option_parser.add_option("-f", "--timeout-file",
-                           default="reliability_timedout_sites.txt",
-                           help="the list of sites that timedout during test")
-  option_parser.add_option("-d", "--delay",
-                           default=0,
-                           help="add a manual delay between pages (in ms)")
-  option_parser.add_option("-b", "--bugreport",
-                           default=".",
-                           help="the directory to store bugreport for crashes")
-  option_parser.add_option("-l", "--logtime",
-                           default=None,
-                           help="Logs page load time for each url to the file")
-  opts, arguments = option_parser.parse_args()
-  main(opts, arguments)
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java b/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java
deleted file mode 100644
index 9d621d6..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/CallbackProxy.java
+++ /dev/null
@@ -1,529 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.dumprendertree;
-
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.webkit.WebStorage;
-
-import java.util.HashMap;
-
-public class CallbackProxy extends Handler implements EventSender, LayoutTestController {
-
-    private EventSender mEventSender;
-    private LayoutTestController mLayoutTestController;
-
-    private static final int EVENT_DOM_LOG = 1;
-    private static final int EVENT_FIRE_KBD = 2;
-    private static final int EVENT_KEY_DOWN_1 = 3;
-    private static final int EVENT_KEY_DOWN_2 = 4;
-    private static final int EVENT_LEAP = 5;
-    private static final int EVENT_MOUSE_CLICK = 6;
-    private static final int EVENT_MOUSE_DOWN = 7;
-    private static final int EVENT_MOUSE_MOVE = 8;
-    private static final int EVENT_MOUSE_UP = 9;
-    private static final int EVENT_TOUCH_START = 10;
-    private static final int EVENT_TOUCH_MOVE = 11;
-    private static final int EVENT_TOUCH_END = 12;
-    private static final int EVENT_TOUCH_CANCEL = 13;
-    private static final int EVENT_ADD_TOUCH_POINT = 14;
-    private static final int EVENT_UPDATE_TOUCH_POINT = 15;
-    private static final int EVENT_RELEASE_TOUCH_POINT = 16;
-    private static final int EVENT_CLEAR_TOUCH_POINTS = 17;
-    private static final int EVENT_CANCEL_TOUCH_POINT = 18;
-    private static final int EVENT_SET_TOUCH_MODIFIER = 19;
-    private static final int LAYOUT_CLEAR_LIST = 20;
-    private static final int LAYOUT_DISPLAY = 21;
-    private static final int LAYOUT_DUMP_TEXT = 22;
-    private static final int LAYOUT_DUMP_HISTORY = 23;
-    private static final int LAYOUT_DUMP_CHILD_SCROLL = 24;
-    private static final int LAYOUT_DUMP_EDIT_CB = 25;
-    private static final int LAYOUT_DUMP_SEL_RECT = 26;
-    private static final int LAYOUT_DUMP_TITLE_CHANGES = 27;
-    private static final int LAYOUT_KEEP_WEB_HISTORY = 28;
-    private static final int LAYOUT_NOTIFY_DONE = 29;
-    private static final int LAYOUT_QUEUE_BACK_NAV = 30;
-    private static final int LAYOUT_QUEUE_FWD_NAV = 31;
-    private static final int LAYOUT_QUEUE_LOAD = 32;
-    private static final int LAYOUT_QUEUE_RELOAD = 33;
-    private static final int LAYOUT_QUEUE_SCRIPT = 34;
-    private static final int LAYOUT_REPAINT_HORZ = 35;
-    private static final int LAYOUT_SET_ACCEPT_EDIT = 36;
-    private static final int LAYOUT_MAIN_FIRST_RESP = 37;
-    private static final int LAYOUT_SET_WINDOW_KEY = 38;
-    private static final int LAYOUT_TEST_REPAINT = 39;
-    private static final int LAYOUT_WAIT_UNTIL_DONE = 40;
-    private static final int LAYOUT_DUMP_DATABASE_CALLBACKS = 41;
-    private static final int LAYOUT_SET_CAN_OPEN_WINDOWS = 42;
-    private static final int OVERRIDE_PREFERENCE = 43;
-    private static final int LAYOUT_DUMP_CHILD_FRAMES_TEXT = 44;
-    private static final int SET_XSS_AUDITOR_ENABLED = 45;
-    
-    CallbackProxy(EventSender eventSender, 
-            LayoutTestController layoutTestController) {
-        mEventSender = eventSender;
-        mLayoutTestController = layoutTestController;
-    }
-    
-    public void handleMessage(Message msg) {
-        switch (msg.what) {
-        case EVENT_DOM_LOG:
-            mEventSender.enableDOMUIEventLogging(msg.arg1);
-            break;
-        case EVENT_FIRE_KBD:
-            mEventSender.fireKeyboardEventsToElement(msg.arg1);
-            break;
-        case EVENT_KEY_DOWN_1:
-            HashMap map = (HashMap) msg.obj;
-            mEventSender.keyDown((String) map.get("character"), 
-                    (String[]) map.get("withModifiers"));
-            break;
-
-        case EVENT_KEY_DOWN_2:
-            mEventSender.keyDown((String)msg.obj);
-            break;
-
-        case EVENT_LEAP:
-            mEventSender.leapForward(msg.arg1);
-            break;
-
-        case EVENT_MOUSE_CLICK:
-            mEventSender.mouseClick();
-            break;
-
-        case EVENT_MOUSE_DOWN:
-            mEventSender.mouseDown();
-            break;
-
-        case EVENT_MOUSE_MOVE:
-            mEventSender.mouseMoveTo(msg.arg1, msg.arg2);
-            break;
-
-        case EVENT_MOUSE_UP:
-            mEventSender.mouseUp();
-            break;
-
-        case EVENT_TOUCH_START:
-            mEventSender.touchStart();
-            break;
-
-        case EVENT_TOUCH_MOVE:
-            mEventSender.touchMove();
-            break;
-
-        case EVENT_TOUCH_END:
-            mEventSender.touchEnd();
-            break;
-
-        case EVENT_TOUCH_CANCEL:
-            mEventSender.touchCancel();
-            break;
-
-        case EVENT_ADD_TOUCH_POINT:
-            mEventSender.addTouchPoint(msg.arg1, msg.arg2);
-            break;
-
-        case EVENT_UPDATE_TOUCH_POINT:
-            Bundle args = (Bundle) msg.obj;
-            int x = args.getInt("x");
-            int y = args.getInt("y");
-            int id = args.getInt("id");
-            mEventSender.updateTouchPoint(id, x, y);
-            break;
-
-        case EVENT_SET_TOUCH_MODIFIER:
-            Bundle modifierArgs = (Bundle) msg.obj;
-            String modifier = modifierArgs.getString("modifier");
-            boolean enabled = modifierArgs.getBoolean("enabled");
-            mEventSender.setTouchModifier(modifier, enabled);
-            break;
-
-        case EVENT_RELEASE_TOUCH_POINT:
-            mEventSender.releaseTouchPoint(msg.arg1);
-            break;
-
-        case EVENT_CLEAR_TOUCH_POINTS:
-            mEventSender.clearTouchPoints();
-            break;
-
-        case EVENT_CANCEL_TOUCH_POINT:
-            mEventSender.cancelTouchPoint(msg.arg1);
-            break;
-
-        case LAYOUT_CLEAR_LIST:
-            mLayoutTestController.clearBackForwardList();
-            break;
-
-        case LAYOUT_DISPLAY:
-            mLayoutTestController.display();
-            break;
-
-        case LAYOUT_DUMP_TEXT:
-            mLayoutTestController.dumpAsText(msg.arg1 == 1);
-            break;
-
-        case LAYOUT_DUMP_CHILD_FRAMES_TEXT:
-            mLayoutTestController.dumpChildFramesAsText();
-            break;
-
-        case LAYOUT_DUMP_HISTORY:
-            mLayoutTestController.dumpBackForwardList();
-            break;
-
-        case LAYOUT_DUMP_CHILD_SCROLL:
-            mLayoutTestController.dumpChildFrameScrollPositions();
-            break;
-
-        case LAYOUT_DUMP_EDIT_CB:
-            mLayoutTestController.dumpEditingCallbacks();
-            break;
-
-        case LAYOUT_DUMP_SEL_RECT:
-            mLayoutTestController.dumpSelectionRect();
-            break;
-
-        case LAYOUT_DUMP_TITLE_CHANGES:
-            mLayoutTestController.dumpTitleChanges();
-            break;
-
-        case LAYOUT_KEEP_WEB_HISTORY:
-            mLayoutTestController.keepWebHistory();
-            break;
-
-        case LAYOUT_NOTIFY_DONE:
-            mLayoutTestController.notifyDone();
-            break;
-
-        case LAYOUT_QUEUE_BACK_NAV:
-            mLayoutTestController.queueBackNavigation(msg.arg1);
-            break;
-
-        case LAYOUT_QUEUE_FWD_NAV:
-            mLayoutTestController.queueForwardNavigation(msg.arg1);
-            break;
-
-        case LAYOUT_QUEUE_LOAD:
-            HashMap<String, String> loadMap = 
-                (HashMap<String, String>) msg.obj;
-            mLayoutTestController.queueLoad(loadMap.get("Url"), 
-                    loadMap.get("frameTarget"));
-            break;
-
-        case LAYOUT_QUEUE_RELOAD:
-            mLayoutTestController.queueReload();
-            break;
-
-        case LAYOUT_QUEUE_SCRIPT:
-            mLayoutTestController.queueScript((String)msg.obj);
-            break;
-
-        case LAYOUT_REPAINT_HORZ:
-            mLayoutTestController.repaintSweepHorizontally();
-            break;
-
-        case LAYOUT_SET_ACCEPT_EDIT:
-            mLayoutTestController.setAcceptsEditing(
-                    msg.arg1 == 1 ? true : false);
-            break;
-        case LAYOUT_MAIN_FIRST_RESP:
-            mLayoutTestController.setMainFrameIsFirstResponder(
-                    msg.arg1 == 1 ? true : false);
-            break;
-
-        case LAYOUT_SET_WINDOW_KEY:
-            mLayoutTestController.setWindowIsKey(
-                    msg.arg1 == 1 ? true : false);
-            break;
-
-        case LAYOUT_TEST_REPAINT:
-            mLayoutTestController.testRepaint();
-            break;
-
-        case LAYOUT_WAIT_UNTIL_DONE:
-            mLayoutTestController.waitUntilDone();
-            break;
-
-        case LAYOUT_DUMP_DATABASE_CALLBACKS:
-            mLayoutTestController.dumpDatabaseCallbacks();
-            break;
-
-        case LAYOUT_SET_CAN_OPEN_WINDOWS:
-            mLayoutTestController.setCanOpenWindows();
-            break;
-
-        case OVERRIDE_PREFERENCE:
-            String key = msg.getData().getString("key");
-            boolean value = msg.getData().getBoolean("value");
-            mLayoutTestController.overridePreference(key, value);
-            break;
-
-        case SET_XSS_AUDITOR_ENABLED:
-            mLayoutTestController.setXSSAuditorEnabled(msg.arg1 == 1);
-            break;
-        }
-    }
-
-    // EventSender Methods
-    
-    public void enableDOMUIEventLogging(int DOMNode) {
-        obtainMessage(EVENT_DOM_LOG, DOMNode, 0).sendToTarget();
-    }
-
-    public void fireKeyboardEventsToElement(int DOMNode) {
-        obtainMessage(EVENT_FIRE_KBD, DOMNode, 0).sendToTarget();
-    }
-
-    public void keyDown(String character, String[] withModifiers) {
-        // TODO Auto-generated method stub
-        HashMap map = new HashMap();
-        map.put("character", character);
-        map.put("withModifiers", withModifiers);
-        obtainMessage(EVENT_KEY_DOWN_1, map).sendToTarget();
-    }
-
-    public void keyDown(String character) {
-        obtainMessage(EVENT_KEY_DOWN_2, character).sendToTarget();
-    }
-
-    public void leapForward(int milliseconds) {
-        obtainMessage(EVENT_LEAP, milliseconds, 0).sendToTarget(); 
-    }
-
-    public void mouseClick() {
-        obtainMessage(EVENT_MOUSE_CLICK).sendToTarget();
-    }
-
-    public void mouseDown() {
-        obtainMessage(EVENT_MOUSE_DOWN).sendToTarget();
-    }
-
-    public void mouseMoveTo(int X, int Y) {
-        obtainMessage(EVENT_MOUSE_MOVE, X, Y).sendToTarget();
-    }
-
-    public void mouseUp() {
-        obtainMessage(EVENT_MOUSE_UP).sendToTarget();
-    }
-
-    public void touchStart() {
-        obtainMessage(EVENT_TOUCH_START).sendToTarget();
-    }
-
-    public void addTouchPoint(int x, int y) {
-        obtainMessage(EVENT_ADD_TOUCH_POINT, x, y).sendToTarget();
-    }
-
-    public void updateTouchPoint(int id, int x, int y) {
-        Bundle map = new Bundle();
-        map.putInt("x", x);
-        map.putInt("y", y);
-        map.putInt("id", id);
-        obtainMessage(EVENT_UPDATE_TOUCH_POINT, map).sendToTarget();
-    }
-
-    public void setTouchModifier(String modifier, boolean enabled) {
-        Bundle map = new Bundle();
-        map.putString("modifier", modifier);
-        map.putBoolean("enabled", enabled);
-        obtainMessage(EVENT_SET_TOUCH_MODIFIER, map).sendToTarget();
-    }
-
-    public void touchMove() {
-        obtainMessage(EVENT_TOUCH_MOVE).sendToTarget();
-    }
-
-    public void releaseTouchPoint(int id) {
-        obtainMessage(EVENT_RELEASE_TOUCH_POINT, id, 0).sendToTarget();
-    }
-
-    public void touchEnd() {
-        obtainMessage(EVENT_TOUCH_END).sendToTarget();
-    }
-
-    public void touchCancel() {
-        obtainMessage(EVENT_TOUCH_CANCEL).sendToTarget();
-    }
-
-
-    public void clearTouchPoints() {
-        obtainMessage(EVENT_CLEAR_TOUCH_POINTS).sendToTarget();
-    }
-
-    public void cancelTouchPoint(int id) {
-        obtainMessage(EVENT_CANCEL_TOUCH_POINT, id, 0).sendToTarget();
-    }
-    
-    // LayoutTestController Methods
-
-    public void clearBackForwardList() {
-        obtainMessage(LAYOUT_CLEAR_LIST).sendToTarget();
-    }
-
-    public void display() {
-        obtainMessage(LAYOUT_DISPLAY).sendToTarget();
-    }
-
-    public void dumpAsText() {
-        obtainMessage(LAYOUT_DUMP_TEXT, 0).sendToTarget();
-    }
-
-    public void dumpAsText(boolean enablePixelTests) {
-        obtainMessage(LAYOUT_DUMP_TEXT, enablePixelTests ? 1 : 0).sendToTarget();
-    }
-
-    public void dumpChildFramesAsText() {
-        obtainMessage(LAYOUT_DUMP_CHILD_FRAMES_TEXT).sendToTarget();
-    }
-
-    public void dumpBackForwardList() {
-        obtainMessage(LAYOUT_DUMP_HISTORY).sendToTarget();
-    }
-
-    public void dumpChildFrameScrollPositions() {
-        obtainMessage(LAYOUT_DUMP_CHILD_SCROLL).sendToTarget();
-    }
-
-    public void dumpEditingCallbacks() {
-        obtainMessage(LAYOUT_DUMP_EDIT_CB).sendToTarget(); 
-    }
-
-    public void dumpSelectionRect() {
-        obtainMessage(LAYOUT_DUMP_SEL_RECT).sendToTarget(); 
-    }
-
-    public void dumpTitleChanges() {
-        obtainMessage(LAYOUT_DUMP_TITLE_CHANGES).sendToTarget();
-    }
-
-    public void keepWebHistory() {
-        obtainMessage(LAYOUT_KEEP_WEB_HISTORY).sendToTarget();
-    }
-
-    public void notifyDone() {
-        obtainMessage(LAYOUT_NOTIFY_DONE).sendToTarget();
-    }
-
-    public void queueBackNavigation(int howfar) {
-        obtainMessage(LAYOUT_QUEUE_BACK_NAV, howfar, 0).sendToTarget();
-    }
-
-    public void queueForwardNavigation(int howfar) {
-        obtainMessage(LAYOUT_QUEUE_FWD_NAV, howfar, 0).sendToTarget();
-    }
-
-    public void queueLoad(String Url, String frameTarget) {
-        HashMap <String, String>map = new HashMap<String, String>();
-        map.put("Url", Url);
-        map.put("frameTarget", frameTarget);
-        obtainMessage(LAYOUT_QUEUE_LOAD, map).sendToTarget();
-    }
-
-    public void queueReload() {
-        obtainMessage(LAYOUT_QUEUE_RELOAD).sendToTarget();
-    }
-
-    public void queueScript(String scriptToRunInCurrentContext) {
-        obtainMessage(LAYOUT_QUEUE_SCRIPT, 
-                scriptToRunInCurrentContext).sendToTarget();
-    }
-
-    public void repaintSweepHorizontally() {
-        obtainMessage(LAYOUT_REPAINT_HORZ).sendToTarget();
-    }
-
-    public void setAcceptsEditing(boolean b) {
-        obtainMessage(LAYOUT_SET_ACCEPT_EDIT, b ? 1 : 0, 0).sendToTarget();
-    }
-
-    public void setMainFrameIsFirstResponder(boolean b) {
-        obtainMessage(LAYOUT_MAIN_FIRST_RESP, b ? 1 : 0, 0).sendToTarget();
-    }
-
-    public void setWindowIsKey(boolean b) {
-        obtainMessage(LAYOUT_SET_WINDOW_KEY, b ? 1 : 0, 0).sendToTarget();
-    }
-
-    public void testRepaint() {
-        obtainMessage(LAYOUT_TEST_REPAINT).sendToTarget(); 
-    }
-
-    public void waitUntilDone() {
-        obtainMessage(LAYOUT_WAIT_UNTIL_DONE).sendToTarget();
-    }
-
-    public void dumpDatabaseCallbacks() {
-        obtainMessage(LAYOUT_DUMP_DATABASE_CALLBACKS).sendToTarget();
-    }
-
-    public void clearAllDatabases() {
-        WebStorage.getInstance().deleteAllData();
-    }
-
-    public void setDatabaseQuota(long quota) {
-        WebStorage.getInstance().setQuotaForOrigin("file://", quota);
-    }
-
-    public void setAppCacheMaximumSize(long size) {
-        android.webkit.WebStorageClassic.getInstance().setAppCacheMaximumSize(size);
-    }
-
-    public void setCanOpenWindows() {
-        obtainMessage(LAYOUT_SET_CAN_OPEN_WINDOWS).sendToTarget();
-    }
-
-    public void setMockGeolocationPosition(double latitude,
-                                           double longitude,
-                                           double accuracy) {
-        // Configuration is in WebKit, so stay on WebCore thread, but go via the TestShellActivity
-        // as we need access to the Webview.
-        mLayoutTestController.setMockGeolocationPosition(latitude,
-                                                         longitude,
-                                                         accuracy);
-    }
-
-    public void setMockGeolocationError(int code, String message) {
-        // Configuration is in WebKit, so stay on WebCore thread, but go via the TestShellActivity
-        // as we need access to the Webview.
-        mLayoutTestController.setMockGeolocationError(code, message);
-    }
-
-    public void setGeolocationPermission(boolean allow) {
-        // Configuration is in WebKit, so stay on WebCore thread, but go via the TestShellActivity
-        // as we need access to the Webview.
-        mLayoutTestController.setGeolocationPermission(allow);
-    }
-
-    public void setMockDeviceOrientation(boolean canProvideAlpha, double alpha,
-            boolean canProvideBeta, double beta, boolean canProvideGamma, double gamma) {
-        // Configuration is in WebKit, so stay on WebCore thread, but go via the TestShellActivity
-        // as we need access to the Webview.
-        mLayoutTestController.setMockDeviceOrientation(canProvideAlpha, alpha, canProvideBeta, beta,
-                canProvideGamma, gamma);
-    }
-
-    public void overridePreference(String key, boolean value) {
-        Message message = obtainMessage(OVERRIDE_PREFERENCE);
-        message.getData().putString("key", key);
-        message.getData().putBoolean("value", value);
-        message.sendToTarget();
-    }
-
-    public void setXSSAuditorEnabled(boolean flag) {
-        obtainMessage(SET_XSS_AUDITOR_ENABLED, flag ? 1 : 0, 0).sendToTarget();
-    }
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/EventSender.java b/tests/DumpRenderTree/src/com/android/dumprendertree/EventSender.java
deleted file mode 100644
index 23cc8f5..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/EventSender.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.dumprendertree;
-
-public interface EventSender {
-    	public void mouseDown();
-    	public void mouseUp();
-        public void mouseClick();
-        public void mouseMoveTo(int X, int Y);
-        public void leapForward(int milliseconds);
-        public void keyDown (String character, String[] withModifiers);
-        public void keyDown (String character);
-        public void enableDOMUIEventLogging(int DOMNode);
-        public void fireKeyboardEventsToElement(int DOMNode);
-        public void touchStart();
-        public void touchMove();
-        public void touchEnd();
-        public void touchCancel();
-        public void addTouchPoint(int x, int y);
-        public void updateTouchPoint(int id, int x, int y);
-        public void setTouchModifier(String modifier, boolean enabled);
-        public void releaseTouchPoint(int id);
-        public void clearTouchPoints();
-        public void cancelTouchPoint(int id);
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java b/tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java
deleted file mode 100644
index d373d8d..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/FileFilter.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.dumprendertree;
-
-import java.util.Vector;
-import android.util.*;
-
-public class FileFilter {
-
-    private static final String LOGTAG = "FileFilter";
-
-    // Returns whether we should ignore this test and skip running it.
-    // Currently we use this only for tests that crash or hang DumpRenderTree.
-    // TODO: Fix these and eliminate this method.
-    public static boolean ignoreTest(String file) {
-        for (int i = 0; i < ignoreTestList.length; i++) {
-            if (file.endsWith(ignoreTestList[i])) {
-                Log.v(LOGTAG, "File path in list of ignored tests: " + file);
-                return true;
-            }
-        }
-        return false;
-    }
-
-    // Returns whether a directory does not contain layout tests and so can be
-    // ignored.
-    public static boolean isNonTestDir(String file) {
-        for (int i = 0; i < nonTestDirs.length; i++) {
-            if (file.endsWith(nonTestDirs[i])) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    // Returns whether we should ignore the result of this test.
-    public static boolean ignoreResult(String file) {
-        for (int i = 0; i < ignoreResultList.size(); i++) {
-            if (file.endsWith(ignoreResultList.get(i))) {
-                Log.v(LOGTAG, "File path in list of ignored results: " + file);
-                return true;
-            }
-        }
-        return false;
-    }
-
-    final static Vector<String> ignoreResultList = new Vector<String>();
-
-    static {
-        fillIgnoreResultList();
-    }
-
-    static final String[] nonTestDirs = {
-        ".", // ignore hidden directories and files
-        "resources", // ignore resource directories
-        ".svn", // don't run anything under .svn folder
-        "platform"  // No-Android specific tests
-    };
-
-    static final String[] ignoreTestList = {
-        "canvas/philip/tests/2d.drawImage.broken.html", // blocks test, http://b/2982500
-        "editing/selection/move-left-right.html", // Causes DumpRenderTree to hang
-        "fast/js/excessive-comma-usage.html", // Tests huge initializer list, causes OOM.
-        "fast/js/regexp-charclass-crash.html", // RegExp is too large, causing OOM
-        "fast/js/regexp-overflow.html", // Result is too large, causing OOM when reading by DRT, http://b/2697589
-        "fast/regex/test1.html", // Causes DumpRenderTree to hang with V8
-        "fast/regex/slow.html", // Causes DumpRenderTree to hang with V8
-    };
-
-    static void fillIgnoreResultList() {
-        // This first block of tests are for features for which Android
-        // should pass all tests. They are skipped only temporarily.
-        // TODO: Fix these failing tests and remove them from this list.
-        ignoreResultList.add("fast/dom/HTMLKeygenElement/keygen.html"); // Missing layoutTestController.shadowRoot()
-        ignoreResultList.add("fast/dom/Geolocation/window-close-crash.html"); // Missing layoutTestContoller.setCloseRemainingWindowsWhenComplete()
-        ignoreResultList.add("fast/dom/Geolocation/page-reload-cancel-permission-requests.html"); // Missing layoutTestController.numberOfPendingGeolocationPermissionRequests()
-        ignoreResultList.add("fast/dom/HTMLLinkElement/link-and-subresource-test.html"); // Missing layoutTestController.dumpResourceResponseMIMETypes()
-        ignoreResultList.add("fast/dom/HTMLLinkElement/prefetch.html"); // Missing layoutTestController.dumpResourceResponseMIMETypes()
-        ignoreResultList.add("fast/dom/HTMLLinkElement/subresource.html"); // Missing layoutTestController.dumpResourceResponseMIMETypes()
-        ignoreResultList.add("fast/encoding/char-decoding.html"); // fails in Java HTTP stack, see http://b/issue?id=3047156
-        ignoreResultList.add("fast/encoding/hanarei-blog32-fc2-com.html"); // fails in Java HTTP stack, see http://b/issue?id=3046986
-        ignoreResultList.add("fast/encoding/mailto-always-utf-8.html"); // Requires waitForPolicyDelegate(), see http://b/issue?id=3043468
-        ignoreResultList.add("fast/encoding/percent-escaping.html"); // fails in Java HTTP stack, see http://b/issue?id=3046984
-        ignoreResultList.add("http/tests/appcache/empty-manifest.html"); // flaky
-        ignoreResultList.add("http/tests/appcache/fallback.html"); // http://b/issue?id=2713004
-        ignoreResultList.add("http/tests/appcache/foreign-fallback.html"); // Flaky, may be due to DRT, see http://b/3285647
-        ignoreResultList.add("http/tests/appcache/foreign-iframe-main.html"); // flaky - skips states
-        ignoreResultList.add("http/tests/appcache/manifest-with-empty-file.html"); // flaky
-        ignoreResultList.add("http/tests/appcache/origin-quota.html"); // needs clearAllApplicationCaches(), see http://b/issue?id=2944196
-        ignoreResultList.add("storage/database-lock-after-reload.html"); // Succeeds but DumpRenderTree does not read result correctly
-        ignoreResultList.add("storage/hash-change-with-xhr.html"); // Succeeds but DumpRenderTree does not read result correctly
-        ignoreResultList.add("storage/open-database-creation-callback-isolated-world.html"); // Requires layoutTestController.evaluateScriptInIsolatedWorld()
-        ignoreResultList.add("storage/statement-error-callback-isolated-world.html"); // Requires layoutTestController.evaluateScriptInIsolatedWorld()
-        ignoreResultList.add("storage/statement-success-callback-isolated-world.html"); // Requires layoutTestController.evaluateScriptInIsolatedWorld()
-        ignoreResultList.add("storage/storageinfo-query-usage.html"); // Need window.webkitStorageInfo
-        ignoreResultList.add("storage/transaction-callback-isolated-world.html"); // Requires layoutTestController.evaluateScriptInIsolatedWorld()
-        ignoreResultList.add("storage/transaction-error-callback-isolated-world.html"); // Requires layoutTestController.evaluateScriptInIsolatedWorld()
-        ignoreResultList.add("storage/transaction-success-callback-isolated-world.html"); // Requires layoutTestController.evaluateScriptInIsolatedWorld()
-        ignoreResultList.add("storage/domstorage/localstorage/storagetracker/storage-tracker-1-prepare.html"); // Missing layoutTestController.originsWithLocalStorage()
-        ignoreResultList.add("storage/domstorage/localstorage/storagetracker/storage-tracker-2-create.html"); // Missing layoutTestController.originsWithLocalStorage()
-        ignoreResultList.add("storage/domstorage/localstorage/storagetracker/storage-tracker-3-delete-all.html"); // Missing layoutTestController.originsWithLocalStorage()
-        ignoreResultList.add("storage/domstorage/localstorage/storagetracker/storage-tracker-4-create.html"); // Missing layoutTestController.originsWithLocalStorage()
-        ignoreResultList.add("storage/domstorage/localstorage/storagetracker/storage-tracker-5-delete-one.html"); // Missing layoutTestController.originsWithLocalStorage()
-
-
-        // Expected failures due to unsupported features or tests unsuitable for Android.
-        ignoreResultList.add("fast/encoding/char-decoding-mac.html"); // Mac-specific encodings (also marked Won't Fix in Chromium, bug 7388)
-        ignoreResultList.add("fast/encoding/char-encoding-mac.html"); // Mac-specific encodings (also marked Won't Fix in Chromium, bug 7388)
-        ignoreResultList.add("fast/encoding/idn-security.html"); // Mac-specific IDN checks (also marked Won't Fix in Chromium, bug 21814)
-        ignoreResultList.add("fast/events/touch/basic-multi-touch-events.html"); // Requires multi-touch gestures not supported by Android system
-        ignoreResultList.add("fast/events/touch/touch-coords-in-zoom-and-scroll.html"); // Requires eventSender.zoomPageIn(),zoomPageOut()
-        ignoreResultList.add("fast/events/touch/touch-target.html"); // Requires multi-touch gestures not supported by Android system
-        ignoreResultList.add("fast/workers"); // workers not supported
-        ignoreResultList.add("http/tests/cookies/third-party-cookie-relaxing.html"); // We don't support conditional acceptance of third-party cookies
-        ignoreResultList.add("http/tests/eventsource/workers"); // workers not supported
-        ignoreResultList.add("http/tests/workers"); // workers not supported
-        ignoreResultList.add("http/tests/xmlhttprequest/workers"); // workers not supported
-        ignoreResultList.add("storage/domstorage/localstorage/private-browsing-affects-storage.html"); // private browsing not supported
-        ignoreResultList.add("storage/domstorage/sessionstorage/private-browsing-affects-storage.html"); // private browsing not supported
-        ignoreResultList.add("storage/indexeddb"); // indexeddb not supported
-        ignoreResultList.add("storage/private-browsing-noread-nowrite.html"); // private browsing not supported
-        ignoreResultList.add("storage/private-browsing-readonly.html"); // private browsing not supported
-        ignoreResultList.add("websocket/tests/workers"); // workers not supported
-        ignoreResultList.add("dom/xhtml/level2/html/htmldocument04.xhtml"); // /mnt/sdcard on SR uses lowercase filesystem, this test checks filename and is case senstive.
-        ignoreResultList.add("dom/html/level2/html/htmldocument04.html"); // ditto
-
-        // Expected failures due to missing expected results
-        ignoreResultList.add("dom/xhtml/level3/core/canonicalform08.xhtml");
-        ignoreResultList.add("dom/xhtml/level3/core/canonicalform09.xhtml");
-        ignoreResultList.add("dom/xhtml/level3/core/documentgetinputencoding03.xhtml");
-        ignoreResultList.add("dom/xhtml/level3/core/entitygetinputencoding02.xhtml");
-        ignoreResultList.add("dom/xhtml/level3/core/entitygetxmlversion02.xhtml");
-        ignoreResultList.add("dom/xhtml/level3/core/nodegetbaseuri05.xhtml");
-        ignoreResultList.add("dom/xhtml/level3/core/nodegetbaseuri07.xhtml");
-        ignoreResultList.add("dom/xhtml/level3/core/nodegetbaseuri09.xhtml");
-        ignoreResultList.add("dom/xhtml/level3/core/nodegetbaseuri10.xhtml");
-        ignoreResultList.add("dom/xhtml/level3/core/nodegetbaseuri11.xhtml");
-        ignoreResultList.add("dom/xhtml/level3/core/nodegetbaseuri15.xhtml");
-        ignoreResultList.add("dom/xhtml/level3/core/nodegetbaseuri17.xhtml");
-        ignoreResultList.add("dom/xhtml/level3/core/nodegetbaseuri18.xhtml");
-        ignoreResultList.add("dom/xhtml/level3/core/nodelookupnamespaceuri01.xhtml");
-        ignoreResultList.add("dom/xhtml/level3/core/nodelookupprefix19.xhtml");
-
-        // TODO: These need to be triaged
-        ignoreResultList.add("fast/css/case-transform.html"); // will not fix #619707
-        ignoreResultList.add("fast/dom/Element/offsetLeft-offsetTop-body-quirk.html"); // different screen size result in extra spaces in Apple compared to us
-        ignoreResultList.add("fast/dom/Window/Plug-ins.html"); // need test plugin
-        ignoreResultList.add("fast/dom/Window/window-screen-properties.html"); // pixel depth
-        ignoreResultList.add("fast/dom/Window/window-xy-properties.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/dom/attribute-namespaces-get-set.html"); // http://b/733229
-        ignoreResultList.add("fast/dom/object-embed-plugin-scripting.html"); // dynamic plugins not supported
-        ignoreResultList.add("fast/dom/tabindex-clamp.html"); // there is extra spacing in the file due to multiple input boxes fitting on one line on Apple, ours are wrapped. Space at line ends are stripped.
-        ignoreResultList.add("fast/events/anchor-image-scrolled-x-y.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/arrow-navigation.html"); // http://b/735233
-        ignoreResultList.add("fast/events/capture-on-target.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/dblclick-addEventListener.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/drag-in-frames.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/drag-outside-window.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/event-view-toString.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/frame-click-focus.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/frame-tab-focus.html"); // http://b/734308
-        ignoreResultList.add("fast/events/iframe-object-onload.html"); // there is extra spacing in the file due to multiple frame boxes fitting on one line on Apple, ours are wrapped. Space at line ends are stripped.
-        ignoreResultList.add("fast/events/input-image-scrolled-x-y.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/mouseclick-target-and-positioning.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/mouseover-mouseout.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/mouseover-mouseout2.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/mouseup-outside-button.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/mouseup-outside-document.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/onclick-list-marker.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/ondragenter.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/onload-webkit-before-webcore.html"); // missing space in textrun, ok as text is wrapped. ignore. #714933
-        ignoreResultList.add("fast/events/option-tab.html"); // http://b/734308
-        ignoreResultList.add("fast/events/window-events-bubble.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/window-events-bubble2.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/events/window-events-capture.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/forms/drag-into-textarea.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/forms/focus-control-to-page.html"); // http://b/716638
-        ignoreResultList.add("fast/forms/focus2.html"); // http://b/735111
-        ignoreResultList.add("fast/forms/form-data-encoding-2.html"); // charset convert. #516936 ignore, won't fix
-        ignoreResultList.add("fast/forms/form-data-encoding.html"); // charset convert. #516936 ignore, won't fix
-        ignoreResultList.add("fast/forms/input-appearance-maxlength.html"); // execCommand "insertText" not supported
-        ignoreResultList.add("fast/forms/input-select-on-click.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/forms/listbox-onchange.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/forms/listbox-selection.html"); // http://b/735116
-        ignoreResultList.add("fast/forms/onselect-textarea.html"); // requires eventSender.mouseMoveTo, mouseDown & mouseUp and abs. position of mouse to select a word. ignore, won't fix #716583
-        ignoreResultList.add("fast/forms/onselect-textfield.html"); // requires eventSender.mouseMoveTo, mouseDown & mouseUp and abs. position of mouse to select a word. ignore, won't fix #716583
-        ignoreResultList.add("fast/forms/plaintext-mode-1.html"); // not implemented queryCommandEnabled:BackColor, Undo & Redo
-        ignoreResultList.add("fast/forms/search-cancel-button-mouseup.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/forms/search-event-delay.html"); // http://b/735120
-        ignoreResultList.add("fast/forms/select-empty-list.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/forms/select-type-ahead-non-latin.html"); // http://b/735244
-        ignoreResultList.add("fast/forms/selected-index-assert.html"); // not capturing the console messages
-        ignoreResultList.add("fast/forms/selection-functions.html"); // there is extra spacing as the text areas and input boxes fit next to each other on Apple, but are wrapped on our screen.
-        ignoreResultList.add("fast/forms/textarea-appearance-wrap.html"); // Our text areas are a little thinner than Apples. Also RTL test failes
-        ignoreResultList.add("fast/forms/textarea-initial-caret-position.html"); // Text selection done differently on our platform. When a inputbox gets focus, the entire block is selected.
-        ignoreResultList.add("fast/forms/textarea-no-scroll-on-blur.html"); // Text selection done differently on our platform. When a inputbox gets focus, the entire block is selected.
-        ignoreResultList.add("fast/forms/textarea-paste-newline.html"); // Copy&Paste commands not supported
-        ignoreResultList.add("fast/forms/textarea-scrolled-endline-caret.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/frames/iframe-window-focus.html"); // http://b/735140
-        ignoreResultList.add("fast/frames/frameElement-widthheight.html"); // screen width&height are different
-        ignoreResultList.add("fast/frames/frame-js-url-clientWidth.html"); // screen width&height are different
-        ignoreResultList.add("fast/html/tab-order.html"); // http://b/719289
-        ignoreResultList.add("fast/js/navigator-mimeTypes-length.html"); // dynamic plugins not supported
-        ignoreResultList.add("fast/js/string-capitalization.html"); // http://b/516936
-        ignoreResultList.add("fast/loader/local-JavaScript-from-local.html"); // Requires LayoutTests to exist at /tmp/LayoutTests
-        ignoreResultList.add("fast/loader/local-iFrame-source-from-local.html"); // Requires LayoutTests to exist at /tmp/LayoutTests
-        ignoreResultList.add("fast/loader/opaque-base-url.html"); // extra spacing because iFrames rendered next to each other on Apple
-        ignoreResultList.add("fast/overflow/scroll-vertical-not-horizontal.html"); // http://b/735196
-        ignoreResultList.add("fast/parser/script-tag-with-trailing-slash.html"); // not capturing the console messages
-        ignoreResultList.add("fast/replaced/image-map.html"); // requires eventSender.mouseDown(),mouseUp()
-        ignoreResultList.add("fast/text/plain-text-line-breaks.html"); // extra spacing because iFrames rendered next to each other on Apple
-        ignoreResultList.add("profiler"); // profiler is not supported
-    }
-
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/FileList.java b/tests/DumpRenderTree/src/com/android/dumprendertree/FileList.java
deleted file mode 100644
index 4a47a0e..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/FileList.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.dumprendertree;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.io.File;
-
-import android.app.AlertDialog;
-import android.app.ListActivity;
-import android.content.DialogInterface;
-import android.view.KeyEvent;
-import android.view.View;
-import android.widget.ListView;
-import android.widget.SimpleAdapter;
-import android.os.Bundle;
-import android.os.Environment;
-
-
-public abstract class FileList extends ListActivity
-{
-	public boolean onKeyDown(int keyCode, KeyEvent event) {
-		switch (keyCode)
-		{
-			case KeyEvent.KEYCODE_DPAD_LEFT:
-				if (mPath.length() > mBaseLength) {
-					File f = new File(mPath);
-					mFocusFile = f.getName();
-					mFocusIndex = 0;
-					f = f.getParentFile();
-					mPath = f.getPath();
-					updateList();
-					return true;
-				}
-				break;
-
-			case KeyEvent.KEYCODE_DPAD_RIGHT:
-				{
-					Map map = (Map) getListView().getItemAtPosition(getListView().getSelectedItemPosition());
-					String path = (String)map.get("path");
-					if ((new File(path)).isDirectory()) {
-						mPath = path;
-				        mFocusFile = null;
-						updateList();
-					} else {
-						processFile(path, false);
-					}
-                    return true;
-				}
-
-			default:
-				break;
-		}
-		return super.onKeyDown(keyCode, event);
-	}
-
-	public void onCreate(Bundle icicle)
-    {
-        super.onCreate(icicle);
-        setupPath();
-        updateList();
-    }
-
-    protected List getData()
-    {
-        List myData = new ArrayList<HashMap>();
-
-        File f = new File(mPath);
-        if (!f.exists()) {
-        	addItem(myData, "!LayoutTests path missing!", "");
-        	return myData;
-        }
-        String[] files = f.list();
-        Arrays.sort(files);
-
-        for (int i = 0; i < files.length; i++) {
-        	StringBuilder sb = new StringBuilder(mPath);
-        	sb.append(File.separatorChar);
-        	sb.append(files[i]);
-        	String path = sb.toString();
-        	File c = new File(path);
-        	if (fileFilter(c)) {
-	        	if (c.isDirectory()) {
-	        		addItem(myData, "<"+files[i]+">", path);
-	        		if (mFocusFile != null && mFocusFile.equals(files[i]))
-	        			mFocusIndex = myData.size()-1;
-	        	}
-	        	else
-	        	    addItem(myData, files[i], path);
-        	}
-        }
-
-        return myData;
-    }
-
-    protected void addItem(List<Map> data, String name, String path)
-    {
-        HashMap temp = new HashMap();
-        temp.put("title", name);
-        temp.put("path", path);
-        data.add(temp);
-    }
-
-    protected void onListItemClick(ListView l, View v, int position, long id)
-    {
-        Map map = (Map) l.getItemAtPosition(position);
-        final String path = (String)map.get("path");
-
-        if ((new File(path)).isDirectory()) {
-            final CharSequence[] items = {"Open", "Run"};
-            AlertDialog.Builder builder = new AlertDialog.Builder(this);
-            builder.setTitle("Select an Action");
-            builder.setSingleChoiceItems(items, -1,
-                    new DialogInterface.OnClickListener(){
-                public void onClick(DialogInterface dialog, int which) {
-                    switch (which) {
-                        case OPEN_DIRECTORY:
-                            dialog.dismiss();
-                            mPath = path;
-                            mFocusFile = null;
-                            updateList();
-                            break;
-                        case RUN_TESTS:
-                            dialog.dismiss();
-                            processDirectory(path, false);
-                            break;
-                    }
-                }
-            });
-            builder.create().show();
-        } else {
-            processFile(path, false);
-        }
-    }
-
-    /*
-     * This function is called when the user has selected a directory in the
-     * list and wants to perform an action on it instead of navigating into
-     * the directory.
-     */
-    abstract void processDirectory(String path, boolean selection);
-    /*
-     * This function is called when the user has selected a file in the
-     * file list. The selected file could be a file or a directory.
-     * The flag indicates if this was from a selection or not.
-     */
-    abstract void processFile(String filename, boolean selection);
-
-    /*
-     * This function is called when the file list is being built. Return
-     * true if the file is to be added to the file list.
-     */
-    abstract boolean fileFilter(File f);
-
-    protected void updateList() {
-        setListAdapter(new SimpleAdapter(this,
-                getData(),
-                android.R.layout.simple_list_item_1,
-                new String[] {"title"},
-                new int[] {android.R.id.text1}));
-        String title = mPath; //.substring(mBaseLength-11); // show the word LayoutTests
-        setTitle(title);
-        getListView().setSelection(mFocusIndex);
-    }
-
-    protected void setupPath() {
-        mPath = Environment.getExternalStorageDirectory() + "/webkit/layout_tests";
-        mBaseLength = mPath.length();
-    }
-
-    protected String mPath;
-    protected int mBaseLength;
-    protected String mFocusFile;
-    protected int mFocusIndex;
-
-    private final static int OPEN_DIRECTORY = 0;
-    private final static int RUN_TESTS = 1;
-
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/FsUtils.java b/tests/DumpRenderTree/src/com/android/dumprendertree/FsUtils.java
deleted file mode 100644
index b7d2c26..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/FsUtils.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.dumprendertree;
-
-import com.android.dumprendertree.forwarder.ForwardService;
-
-import android.os.Environment;
-import android.util.Log;
-
-import java.io.BufferedOutputStream;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.regex.Pattern;
-
-public class FsUtils {
-
-    private static final String LOGTAG = "FsUtils";
-    static final String EXTERNAL_DIR = Environment.getExternalStorageDirectory().toString();
-    static final String HTTP_TESTS_PREFIX =
-        EXTERNAL_DIR + "/webkit/layout_tests/http/tests/";
-    static final String HTTPS_TESTS_PREFIX =
-        EXTERNAL_DIR + "/webkit/layout_tests/http/tests/ssl/";
-    static final String HTTP_LOCAL_TESTS_PREFIX =
-        EXTERNAL_DIR + "/webkit/layout_tests/http/tests/local/";
-    static final String HTTP_MEDIA_TESTS_PREFIX =
-        EXTERNAL_DIR + "/webkit/layout_tests/http/tests/media/";
-    static final String HTTP_WML_TESTS_PREFIX =
-        EXTERNAL_DIR + "/webkit/layout_tests/http/tests/wml/";
-
-    private FsUtils() {
-        //no creation of instances
-    }
-
-    /**
-     * @return the number of tests in the list.
-     */
-    public static int writeLayoutTestListRecursively(BufferedOutputStream bos,
-            String dir, boolean ignoreResultsInDir) throws IOException {
-
-        int testCount = 0;
-        Log.v(LOGTAG, "Searching tests under " + dir);
-
-        File d = new File(dir);
-        if (!d.isDirectory()) {
-            throw new AssertionError("A directory expected, but got " + dir);
-        }
-        ignoreResultsInDir |= FileFilter.ignoreResult(dir);
-
-        String[] files = d.list();
-        for (int i = 0; i < files.length; i++) {
-            String s = dir + "/" + files[i];
-
-            File f = new File(s);
-            if (f.isDirectory()) {
-                // If this is not a test directory, we don't recurse into it.
-                if (!FileFilter.isNonTestDir(s)) {
-                    Log.v(LOGTAG, "Recursing on " + s);
-                    testCount += writeLayoutTestListRecursively(bos, s, ignoreResultsInDir);
-                }
-                continue;
-            }
-
-            // If this test should be ignored, we skip it completely.
-            if (FileFilter.ignoreTest(s)) {
-                Log.v(LOGTAG, "Ignoring: " + s);
-                continue;
-            }
-
-            if ((s.toLowerCase().endsWith(".html")
-                    || s.toLowerCase().endsWith(".xml")
-                    || s.toLowerCase().endsWith(".xhtml"))
-                    && !s.endsWith("TEMPLATE.html")) {
-                Log.v(LOGTAG, "Recording " + s);
-                bos.write(s.getBytes());
-                // If the result of this test should be ignored, we still run the test.
-                if (ignoreResultsInDir || FileFilter.ignoreResult(s)) {
-                    bos.write((" IGNORE_RESULT").getBytes());
-                }
-                bos.write('\n');
-                testCount++;
-            }
-        }
-        return testCount;
-    }
-
-    public static void updateTestStatus(String statusFile, String s) {
-        try {
-            BufferedOutputStream bos = new BufferedOutputStream(
-                    new FileOutputStream(statusFile));
-            bos.write(s.getBytes());
-            bos.close();
-        } catch (Exception e) {
-            Log.e(LOGTAG, "Cannot update file " + statusFile);
-        }
-    }
-
-    public static String readTestStatus(String statusFile) {
-        // read out the test name it stopped last time.
-        String status = null;
-        File testStatusFile = new File(statusFile);
-        if(testStatusFile.exists()) {
-            try {
-                BufferedReader inReader = new BufferedReader(
-                        new FileReader(testStatusFile));
-                status = inReader.readLine();
-                inReader.close();
-            } catch (IOException e) {
-                Log.e(LOGTAG, "Error reading test status.", e);
-            }
-        }
-        return status;
-    }
-
-    public static String getTestUrl(String path) {
-        String url = null;
-        if (!path.startsWith(HTTP_TESTS_PREFIX)) {
-            url = "file://" + path;
-        } else {
-            ForwardService.getForwardService().startForwardService();
-            if (path.startsWith(HTTPS_TESTS_PREFIX)) {
-                // still cut the URL after "http/tests/"
-                url = "https://127.0.0.1:8443/" + path.substring(HTTP_TESTS_PREFIX.length());
-            } else if (!path.startsWith(HTTP_LOCAL_TESTS_PREFIX)
-                    && !path.startsWith(HTTP_MEDIA_TESTS_PREFIX)
-                    && !path.startsWith(HTTP_WML_TESTS_PREFIX)) {
-                url = "http://127.0.0.1:8000/" + path.substring(HTTP_TESTS_PREFIX.length());
-            } else {
-                url = "file://" + path;
-            }
-        }
-        return url;
-    }
-
-    public static boolean diffIgnoreSpaces(String file1, String file2)  throws IOException {
-        BufferedReader br1 = new BufferedReader(new FileReader(file1));
-        BufferedReader br2 = new BufferedReader(new FileReader(file2));
-        boolean same = true;
-        Pattern trailingSpace = Pattern.compile("\\s+$");
-
-        while(true) {
-            String line1 = br1.readLine();
-            String line2 = br2.readLine();
-
-            if (line1 == null && line2 == null)
-                break;
-            if (line1 != null) {
-                line1 = trailingSpace.matcher(line1).replaceAll("");
-            } else {
-                line1 = "";
-            }
-            if (line2 != null) {
-                line2 = trailingSpace.matcher(line2).replaceAll("");
-            } else {
-                line2 = "";
-            }
-            if(!line1.equals(line2)) {
-                same = false;
-                break;
-            }
-        }
-
-        br1.close();
-        br2.close();
-
-        return same;
-    }
-
-    public static boolean isTestPageUrl(String url) {
-        int qmPostion = url.indexOf('?');
-        int slashPostion = url.lastIndexOf('/');
-        if (slashPostion < qmPostion) {
-            String fileName = url.substring(slashPostion + 1, qmPostion);
-            if ("index.html".equals(fileName)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    public static String getLastSegmentInPath(String path) {
-        int endPos = path.lastIndexOf('/');
-        path = path.substring(0, endPos);
-        endPos = path.lastIndexOf('/');
-        return path.substring(endPos + 1);
-    }
-
-    public static void writeDrawTime(String fileName, String url, long[] times) {
-        StringBuffer lineBuffer = new StringBuffer();
-        // grab the last segment of path in url
-        lineBuffer.append(getLastSegmentInPath(url));
-        for (long time : times) {
-            lineBuffer.append('\t');
-            lineBuffer.append(time);
-        }
-        lineBuffer.append('\n');
-        String line = lineBuffer.toString();
-        Log.v(LOGTAG, "logging draw times: " + line);
-        try {
-            FileWriter fw = new FileWriter(fileName, true);
-            fw.write(line);
-            fw.close();
-        } catch (IOException ioe) {
-            Log.e(LOGTAG, "Failed to log draw times", ioe);
-        }
-    }
-
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostApp.java b/tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostApp.java
deleted file mode 100644
index f610f5a..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/HTMLHostApp.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.dumprendertree;
-
-import android.app.Application;
-
-public class HTMLHostApp extends Application { 
-
-	public HTMLHostApp() {
-    }
-
-    public void onCreate() {
-    }
-
-    public void onTerminate() {
-    }
-	
-}
-
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java
deleted file mode 100644
index c936a6c..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestController.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.dumprendertree;
-
-public interface LayoutTestController {
-
-    public void dumpAsText(boolean enablePixelTests);
-    public void dumpChildFramesAsText();
-    public void waitUntilDone();
-    public void notifyDone();
-
-    // Force a redraw of the page
-    public void display();
-    // Used with pixel dumps of content
-    public void testRepaint();
-
-    // If the page title changes, add the information to the output.
-    public void dumpTitleChanges();
-    public void dumpBackForwardList();
-    public void dumpChildFrameScrollPositions();
-    public void dumpEditingCallbacks();
-
-    // Show/Hide window for window.onBlur() testing
-    public void setWindowIsKey(boolean b);
-    // Mac function, used to disable events going to the window
-    public void setMainFrameIsFirstResponder(boolean b);
-
-    public void dumpSelectionRect();
-
-    // invalidate and draw one line at a time of the web view.
-    public void repaintSweepHorizontally();
-    
-    // History testing functions
-    public void keepWebHistory();
-    public void clearBackForwardList();
-    // navigate after page load has finished
-    public void queueBackNavigation(int howfar);
-    public void queueForwardNavigation(int howfar);
-    
-    // Reload when the page load has finished
-    public void queueReload();
-    // Execute the provided script in current context when page load has finished.
-    public void queueScript(String scriptToRunInCurrentContext);
-    // Load the provided URL into the provided frame
-    public void queueLoad(String Url, String frameTarget);
-
-    public void setAcceptsEditing(boolean b);
-
-    // For storage tests
-    public void dumpDatabaseCallbacks();
-    public void setCanOpenWindows();
-
-    // For Geolocation tests
-    public void setGeolocationPermission(boolean allow);
-
-    public void overridePreference(String key, boolean value);
-
-    // For XSSAuditor tests
-    public void setXSSAuditorEnabled(boolean flag);
-
-    // For Geolocation tests
-    public void setMockGeolocationPosition(double latitude, double longitude, double accuracy);
-    public void setMockGeolocationError(int code, String message);
-
-    // For DeviceOrientation tests
-    public void setMockDeviceOrientation(boolean canProvideAlpha, double alpha,
-            boolean canProvideBeta, double beta, boolean canProvideGamma, double gamma);
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java
deleted file mode 100644
index fb2a1f4..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoRunner.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-import android.os.Bundle;
-import android.test.InstrumentationTestRunner;
-import android.test.InstrumentationTestSuite;
-
-import junit.framework.TestSuite;
-
-
-/**
- * Instrumentation Test Runner for all DumpRenderTree tests.
- *
- * Running all tests:
- *
- * adb shell am instrument \
- *   -w com.android.dumprendertree.LayoutTestsAutoRunner
- */
-
-public class LayoutTestsAutoRunner extends InstrumentationTestRunner {
-    @Override
-    public TestSuite getAllTests() {
-        TestSuite suite = new InstrumentationTestSuite(this);
-        suite.addTestSuite(LayoutTestsAutoTest.class);
-        suite.addTestSuite(LoadTestsAutoTest.class);
-        return suite;
-    }
-
-    @Override
-    public ClassLoader getLoader() {
-        return LayoutTestsAutoRunner.class.getClassLoader();
-    }
-
-    @Override
-    public void onCreate(Bundle icicle) {
-        this.mTestPath = (String) icicle.get("path");
-        String timeout_str = (String) icicle.get("timeout");
-        if (timeout_str != null) {
-            try {
-                this.mTimeoutInMillis = Integer.parseInt(timeout_str);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-
-        String r = icicle.getString("rebaseline");
-        this.mRebaseline = (r != null && r.toLowerCase().equals("true"));
-
-        mJsEngine = icicle.getString("jsengine");
-
-        mPageCyclerSuite = icicle.getString("suite");
-        mPageCyclerForwardHost = icicle.getString("forward");
-        mPageCyclerIteration = icicle.getString("iteration", "5");
-
-        super.onCreate(icicle);
-    }
-
-    String mPageCyclerSuite;
-    String mPageCyclerForwardHost;
-    String mPageCyclerIteration;
-    String mTestPath;
-    int mTimeoutInMillis = 0;
-    boolean mRebaseline;
-    String mJsEngine;
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoTest.java b/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoTest.java
deleted file mode 100644
index 3fe4e70..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/LayoutTestsAutoTest.java
+++ /dev/null
@@ -1,494 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-import com.android.dumprendertree.TestShellActivity.DumpDataType;
-import com.android.dumprendertree.forwarder.AdbUtils;
-import com.android.dumprendertree.forwarder.ForwardService;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Environment;
-import android.test.ActivityInstrumentationTestCase2;
-import android.util.Log;
-
-import java.io.BufferedOutputStream;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Vector;
-
-// TestRecorder creates four files ...
-// - passing tests
-// - failing tests
-// - tests for which results are ignored
-// - tests with no text results available
-// TestRecorder does not have the ability to clear the results.
-class MyTestRecorder {
-    private BufferedOutputStream mBufferedOutputPassedStream;
-    private BufferedOutputStream mBufferedOutputFailedStream;
-    private BufferedOutputStream mBufferedOutputIgnoreResultStream;
-    private BufferedOutputStream mBufferedOutputNoResultStream;
-
-    public void passed(String layout_file) {
-        try {
-            mBufferedOutputPassedStream.write(layout_file.getBytes());
-            mBufferedOutputPassedStream.write('\n');
-            mBufferedOutputPassedStream.flush();
-        } catch(Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    public void failed(String layout_file) {
-        try {
-            mBufferedOutputFailedStream.write(layout_file.getBytes());
-            mBufferedOutputFailedStream.write('\n');
-            mBufferedOutputFailedStream.flush();
-        } catch(Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    public void ignoreResult(String layout_file) {
-        try {
-            mBufferedOutputIgnoreResultStream.write(layout_file.getBytes());
-            mBufferedOutputIgnoreResultStream.write('\n');
-            mBufferedOutputIgnoreResultStream.flush();
-        } catch(Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    public void noResult(String layout_file) {
-        try {
-            mBufferedOutputNoResultStream.write(layout_file.getBytes());
-            mBufferedOutputNoResultStream.write('\n');
-            mBufferedOutputNoResultStream.flush();
-        } catch(Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    public MyTestRecorder(boolean resume) {
-        try {
-            File externalDir = Environment.getExternalStorageDirectory();
-            File resultsPassedFile = new File(externalDir, "layout_tests_passed.txt");
-            File resultsFailedFile = new File(externalDir, "layout_tests_failed.txt");
-            File resultsIgnoreResultFile = new File(externalDir, "layout_tests_ignored.txt");
-            File noExpectedResultFile = new File(externalDir, "layout_tests_nontext.txt");
-
-            mBufferedOutputPassedStream =
-                new BufferedOutputStream(new FileOutputStream(resultsPassedFile, resume));
-            mBufferedOutputFailedStream =
-                new BufferedOutputStream(new FileOutputStream(resultsFailedFile, resume));
-            mBufferedOutputIgnoreResultStream =
-                new BufferedOutputStream(new FileOutputStream(resultsIgnoreResultFile, resume));
-            mBufferedOutputNoResultStream =
-                new BufferedOutputStream(new FileOutputStream(noExpectedResultFile, resume));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    public void close() {
-        try {
-            mBufferedOutputPassedStream.close();
-            mBufferedOutputFailedStream.close();
-            mBufferedOutputIgnoreResultStream.close();
-            mBufferedOutputNoResultStream.close();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-}
-
-
-public class LayoutTestsAutoTest extends ActivityInstrumentationTestCase2<TestShellActivity> {
-
-    private static final String LOGTAG = "LayoutTests";
-    static final int DEFAULT_TIMEOUT_IN_MILLIS = 5000;
-
-    static final String EXTERNAL_DIR = Environment.getExternalStorageDirectory().toString();
-    static final String LAYOUT_TESTS_ROOT = EXTERNAL_DIR + "/webkit/layout_tests/";
-    static final String LAYOUT_TESTS_RESULT_DIR = EXTERNAL_DIR + "/webkit/layout_tests_results/";
-    static final String ANDROID_EXPECTED_RESULT_DIR = EXTERNAL_DIR + "/webkit/expected_results/";
-    static final String LAYOUT_TESTS_LIST_FILE = EXTERNAL_DIR + "/webkit/layout_tests_list.txt";
-    static final String TEST_STATUS_FILE = EXTERNAL_DIR + "/webkit/running_test.txt";
-    static final String LAYOUT_TESTS_RESULTS_REFERENCE_FILES[] = {
-          "results/layout_tests_passed.txt",
-          "results/layout_tests_failed.txt",
-          "results/layout_tests_nontext.txt",
-          "results/layout_tests_crashed.txt",
-          "run_layout_tests.py"
-    };
-
-    static final String LAYOUT_RESULTS_FAILED_RESULT_FILE = "results/layout_tests_failed.txt";
-    static final String LAYOUT_RESULTS_NONTEXT_RESULT_FILE = "results/layout_tests_nontext.txt";
-    static final String LAYOUT_RESULTS_CRASHED_RESULT_FILE = "results/layout_tests_crashed.txt";
-    static final String LAYOUT_TESTS_RUNNER = "run_layout_tests.py";
-
-    private MyTestRecorder mResultRecorder;
-    private Vector<String> mTestList;
-    // Whether we should ignore the result for the corresponding test. Ordered same as mTestList.
-    private Vector<Boolean> mTestListIgnoreResult;
-    private boolean mRebaselineResults;
-    // The JavaScript engine currently in use. This determines which set of Android-specific
-    // expected test results we use.
-    private String mJsEngine;
-    private String mTestPathPrefix;
-    private boolean mFinished;
-    private int mTestCount;
-    private int mResumeIndex;
-
-    public LayoutTestsAutoTest() {
-      super(TestShellActivity.class);
-    }
-
-    private void getTestList() {
-        // Read test list.
-        try {
-            BufferedReader inReader = new BufferedReader(new FileReader(LAYOUT_TESTS_LIST_FILE));
-            String line = inReader.readLine();
-            while (line != null) {
-                if (line.startsWith(mTestPathPrefix)) {
-                    String[] components = line.split(" ");
-                    mTestList.add(components[0]);
-                    mTestListIgnoreResult.add(components.length > 1 && components[1].equals("IGNORE_RESULT"));
-                }
-                line = inReader.readLine();
-            }
-            inReader.close();
-            Log.v(LOGTAG, "Test list has " + mTestList.size() + " test(s).");
-        } catch (Exception e) {
-            Log.e(LOGTAG, "Error while reading test list : " + e.getMessage());
-        }
-        mTestCount = mTestList.size();
-    }
-
-    private void resumeTestList() {
-        // read out the test name it stoped last time.
-        try {
-            String line = FsUtils.readTestStatus(TEST_STATUS_FILE);
-            for (int i = 0; i < mTestList.size(); i++) {
-                if (mTestList.elementAt(i).equals(line)) {
-                    mTestList = new Vector<String>(mTestList.subList(i+1, mTestList.size()));
-                    mTestListIgnoreResult = new Vector<Boolean>(mTestListIgnoreResult.subList(i+1, mTestListIgnoreResult.size()));
-                    mResumeIndex = i + 1;
-                    break;
-                }
-            }
-        } catch (Exception e) {
-            Log.e(LOGTAG, "Error reading " + TEST_STATUS_FILE);
-        }
-    }
-
-    private void clearTestStatus() {
-        // Delete TEST_STATUS_FILE
-        try {
-            File f = new File(TEST_STATUS_FILE);
-            if (f.delete())
-                Log.v(LOGTAG, "Deleted " + TEST_STATUS_FILE);
-            else
-                Log.e(LOGTAG, "Fail to delete " + TEST_STATUS_FILE);
-        } catch (Exception e) {
-            Log.e(LOGTAG, "Fail to delete " + TEST_STATUS_FILE + " : " + e.getMessage());
-        }
-    }
-
-    private String getResultFile(String test) {
-        String shortName = test.substring(0, test.lastIndexOf('.'));
-        // Write actual results to result directory.
-        return shortName.replaceFirst(LAYOUT_TESTS_ROOT, LAYOUT_TESTS_RESULT_DIR) + "-result.txt";
-    }
-
-    // Gets the file which contains WebKit's expected results for this test.
-    private String getExpectedResultFile(String test) {
-        // The generic result is at <path>/<name>-expected.txt
-        // First try the Android-specific result at
-        // platform/android-<js-engine>/<path>/<name>-expected.txt
-        // then
-        // platform/android/<path>/<name>-expected.txt
-        int pos = test.lastIndexOf('.');
-        if (pos == -1)
-            return null;
-        String genericExpectedResult = test.substring(0, pos) + "-expected.txt";
-        String androidExpectedResultsDir = "platform/android-" + mJsEngine + "/";
-        String androidExpectedResult = genericExpectedResult.replaceFirst(LAYOUT_TESTS_ROOT,
-                LAYOUT_TESTS_ROOT + androidExpectedResultsDir);
-        File f = new File(androidExpectedResult);
-        if (f.exists())
-            return androidExpectedResult;
-        androidExpectedResultsDir = "platform/android/";
-        androidExpectedResult = genericExpectedResult.replaceFirst(LAYOUT_TESTS_ROOT,
-                LAYOUT_TESTS_ROOT + androidExpectedResultsDir);
-        f = new File(androidExpectedResult);
-        return f.exists() ? androidExpectedResult : genericExpectedResult;
-    }
-
-    // Gets the file which contains the actual results of running the test on
-    // Android, generated by a previous run which set a new baseline.
-    private String getAndroidExpectedResultFile(String expectedResultFile) {
-        return expectedResultFile.replaceFirst(LAYOUT_TESTS_ROOT, ANDROID_EXPECTED_RESULT_DIR);
-    }
-
-    // Wrap up
-    private void failedCase(String file) {
-        Log.w("Layout test: ", file + " failed");
-        mResultRecorder.failed(file);
-    }
-
-    private void passedCase(String file) {
-        Log.v("Layout test:", file + " passed");
-        mResultRecorder.passed(file);
-    }
-
-    private void ignoreResultCase(String file) {
-        Log.v("Layout test:", file + " ignore result");
-        mResultRecorder.ignoreResult(file);
-    }
-
-    private void noResultCase(String file) {
-        Log.v("Layout test:", file + " no expected result");
-        mResultRecorder.noResult(file);
-    }
-
-    private void processResult(String testFile, String actualResultFile, String expectedResultFile, boolean ignoreResult) {
-        Log.v(LOGTAG, "  Processing result: " + testFile);
-
-        if (ignoreResult) {
-            ignoreResultCase(testFile);
-            return;
-        }
-
-        File actual = new File(actualResultFile);
-        File expected = new File(expectedResultFile);
-        if (actual.exists() && expected.exists()) {
-            try {
-                if (FsUtils.diffIgnoreSpaces(actualResultFile, expectedResultFile)) {
-                    passedCase(testFile);
-                } else {
-                    failedCase(testFile);
-                }
-            } catch (FileNotFoundException ex) {
-                Log.e(LOGTAG, "File not found : " + ex.getMessage());
-            } catch (IOException ex) {
-                Log.e(LOGTAG, "IO Error : " + ex.getMessage());
-            }
-            return;
-        }
-
-        if (!expected.exists()) {
-            noResultCase(testFile);
-        }
-    }
-
-    private void runTestAndWaitUntilDone(TestShellActivity activity, String test, int timeout, boolean ignoreResult, int testNumber) {
-        activity.setCallback(new TestShellCallback() {
-            public void finished() {
-                synchronized (LayoutTestsAutoTest.this) {
-                    mFinished = true;
-                    LayoutTestsAutoTest.this.notifyAll();
-                }
-            }
-
-            public void timedOut(String url) {
-                Log.v(LOGTAG, "layout timeout: " + url);
-            }
-
-            @Override
-            public void dumpResult(String webViewDump) {
-            }
-        });
-
-        String resultFile = getResultFile(test);
-        if (resultFile == null) {
-            // Simply ignore this test.
-            return;
-        }
-        if (mRebaselineResults) {
-            String expectedResultFile = getExpectedResultFile(test);
-            File f = new File(expectedResultFile);
-            if (f.exists()) {
-                return;  // don't run test and don't overwrite default tests.
-            }
-
-            resultFile = getAndroidExpectedResultFile(expectedResultFile);
-        }
-
-        mFinished = false;
-        Intent intent = new Intent(Intent.ACTION_VIEW);
-        intent.setClass(activity, TestShellActivity.class);
-        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
-        intent.putExtra(TestShellActivity.TEST_URL, FsUtils.getTestUrl(test));
-        intent.putExtra(TestShellActivity.RESULT_FILE, resultFile);
-        intent.putExtra(TestShellActivity.TIMEOUT_IN_MILLIS, timeout);
-        intent.putExtra(TestShellActivity.TOTAL_TEST_COUNT, mTestCount);
-        intent.putExtra(TestShellActivity.CURRENT_TEST_NUMBER, testNumber);
-        intent.putExtra(TestShellActivity.STOP_ON_REF_ERROR, true);
-        activity.startActivity(intent);
-
-        // Wait until done.
-        synchronized (this) {
-            while(!mFinished){
-                try {
-                    this.wait();
-                } catch (InterruptedException e) { }
-            }
-        }
-
-        if (!mRebaselineResults) {
-            String expectedResultFile = getExpectedResultFile(test);
-            File f = new File(expectedResultFile);
-            if (!f.exists()) {
-                expectedResultFile = getAndroidExpectedResultFile(expectedResultFile);
-            }
-
-            processResult(test, resultFile, expectedResultFile, ignoreResult);
-        }
-    }
-
-    // Invokes running of layout tests
-    // and waits till it has finished running.
-    public void executeLayoutTests(boolean resume) {
-        LayoutTestsAutoRunner runner = (LayoutTestsAutoRunner) getInstrumentation();
-        // A convenient method to be called by another activity.
-
-        if (runner.mTestPath == null) {
-            Log.e(LOGTAG, "No test specified");
-            return;
-        }
-
-        this.mTestList = new Vector<String>();
-        this.mTestListIgnoreResult = new Vector<Boolean>();
-
-        // Read settings
-        mTestPathPrefix = (new File(LAYOUT_TESTS_ROOT + runner.mTestPath)).getAbsolutePath();
-        mRebaselineResults = runner.mRebaseline;
-        // V8 is the default JavaScript engine.
-        mJsEngine = runner.mJsEngine == null ? "v8" : runner.mJsEngine;
-
-        int timeout = runner.mTimeoutInMillis;
-        if (timeout <= 0) {
-            timeout = DEFAULT_TIMEOUT_IN_MILLIS;
-        }
-
-        this.mResultRecorder = new MyTestRecorder(resume);
-
-        if (!resume)
-            clearTestStatus();
-
-        getTestList();
-        if (resume)
-            resumeTestList();
-
-        TestShellActivity activity = getActivity();
-        activity.setDefaultDumpDataType(DumpDataType.EXT_REPR);
-
-        // Run tests.
-        for (int i = 0; i < mTestList.size(); i++) {
-            String s = mTestList.elementAt(i);
-            boolean ignoreResult = mTestListIgnoreResult.elementAt(i);
-            FsUtils.updateTestStatus(TEST_STATUS_FILE, s);
-            // Run tests
-            // i is 0 based, but test count is 1 based so add 1 to i here.
-            runTestAndWaitUntilDone(activity, s, runner.mTimeoutInMillis, ignoreResult,
-                    i + 1 + mResumeIndex);
-        }
-
-        FsUtils.updateTestStatus(TEST_STATUS_FILE, "#DONE");
-        ForwardService.getForwardService().stopForwardService();
-        activity.finish();
-    }
-
-    private String getTestPath() {
-        LayoutTestsAutoRunner runner = (LayoutTestsAutoRunner) getInstrumentation();
-
-        String test_path = LAYOUT_TESTS_ROOT;
-        if (runner.mTestPath != null) {
-            test_path += runner.mTestPath;
-        }
-        test_path = new File(test_path).getAbsolutePath();
-        Log.v("LayoutTestsAutoTest", " Test path : " + test_path);
-
-        return test_path;
-    }
-
-    public void generateTestList() {
-        try {
-            File tests_list = new File(LAYOUT_TESTS_LIST_FILE);
-            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(tests_list, false));
-            FsUtils.writeLayoutTestListRecursively(bos, getTestPath(), false); // Don't ignore results
-            bos.flush();
-            bos.close();
-       } catch (Exception e) {
-           Log.e(LOGTAG, "Error when creating test list: " + e.getMessage());
-       }
-    }
-
-    // Running all the layout tests at once sometimes
-    // causes the dumprendertree to run out of memory.
-    // So, additional tests are added to run the tests
-    // in chunks.
-    public void startLayoutTests() {
-        try {
-            File tests_list = new File(LAYOUT_TESTS_LIST_FILE);
-            if (!tests_list.exists())
-              generateTestList();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-        executeLayoutTests(false);
-    }
-
-    public void resumeLayoutTests() {
-        executeLayoutTests(true);
-    }
-
-    public void copyResultsAndRunnerAssetsToCache() {
-        try {
-            Context targetContext = getInstrumentation().getTargetContext();
-            File cacheDir = targetContext.getCacheDir();
-
-            for( int i=0; i< LAYOUT_TESTS_RESULTS_REFERENCE_FILES.length; i++) {
-                InputStream in = targetContext.getAssets().open(
-                        LAYOUT_TESTS_RESULTS_REFERENCE_FILES[i]);
-                OutputStream out = new FileOutputStream(new File(cacheDir,
-                        LAYOUT_TESTS_RESULTS_REFERENCE_FILES[i]));
-
-                byte[] buf = new byte[2048];
-                int len;
-
-                while ((len = in.read(buf)) >= 0 ) {
-                    out.write(buf, 0, len);
-                }
-                out.close();
-                in.close();
-            }
-        }catch (IOException e) {
-          e.printStackTrace();
-        }
-
-    }
-
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/LoadTestsAutoTest.java b/tests/DumpRenderTree/src/com/android/dumprendertree/LoadTestsAutoTest.java
deleted file mode 100644
index 4b86a0b..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/LoadTestsAutoTest.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree;
-
-import com.android.dumprendertree.forwarder.AdbUtils;
-import com.android.dumprendertree.forwarder.ForwardServer;
-
-import android.app.Activity;
-import android.app.Instrumentation;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Debug;
-import android.os.Environment;
-import android.os.Process;
-import android.test.ActivityInstrumentationTestCase2;
-import android.util.Log;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class LoadTestsAutoTest extends ActivityInstrumentationTestCase2<TestShellActivity> {
-
-    private final static String LOGTAG = "LoadTest";
-    private final static String LOAD_TEST_RESULT =
-        Environment.getExternalStorageDirectory() + "/load_test_result.txt";
-    private final static int MAX_GC_WAIT_SEC = 10;
-    private final static int LOCAL_PORT = 17171;
-    private boolean mFinished;
-    static final String LOAD_TEST_RUNNER_FILES[] = {
-        "run_page_cycler.py"
-    };
-    private ForwardServer mForwardServer;
-
-    public LoadTestsAutoTest() {
-        super(TestShellActivity.class);
-    }
-
-    // This function writes the result of the layout test to
-    // Am status so that it can be picked up from a script.
-    public void passOrFailCallback(String file, boolean result) {
-        Instrumentation inst = getInstrumentation();
-        Bundle bundle = new Bundle();
-        bundle.putBoolean(file, result);
-        inst.sendStatus(0, bundle);
-    }
-
-    private String setUpForwarding(String forwardInfo, String suite, String iteration) throws IOException {
-        // read forwarding information first
-        Pattern forwardPattern = Pattern.compile("(.*):(\\d+)/(.*)/");
-        Matcher matcher = forwardPattern.matcher(forwardInfo);
-        if (!matcher.matches()) {
-            throw new RuntimeException("Invalid forward information");
-        }
-        String host = matcher.group(1);
-        int port = Integer.parseInt(matcher.group(2));
-        mForwardServer = new ForwardServer(LOCAL_PORT, AdbUtils.resolve(host), port);
-        mForwardServer.start();
-        return String.format("http://127.0.0.1:%d/%s/%s/start.html?auto=1&iterations=%s",
-                LOCAL_PORT, matcher.group(3), suite, iteration);
-    }
-
-    // Invokes running of layout tests
-    // and waits till it has finished running.
-    public void runPageCyclerTest() throws IOException {
-        LayoutTestsAutoRunner runner = (LayoutTestsAutoRunner) getInstrumentation();
-
-        if (runner.mPageCyclerSuite != null) {
-            // start forwarder to use page cycler suites hosted on external web server
-            if (runner.mPageCyclerForwardHost == null) {
-                throw new RuntimeException("no forwarder information provided");
-            }
-            runner.mTestPath = setUpForwarding(runner.mPageCyclerForwardHost,
-                    runner.mPageCyclerSuite, runner.mPageCyclerIteration);
-            Log.d(LOGTAG, "using path: " + runner.mTestPath);
-        }
-
-        if (runner.mTestPath == null) {
-            throw new RuntimeException("No test specified");
-        }
-
-        final TestShellActivity activity = (TestShellActivity) getActivity();
-
-        Log.v(LOGTAG, "About to run tests, calling gc first...");
-        freeMem();
-
-        // Run tests
-        runTestAndWaitUntilDone(activity, runner.mTestPath, runner.mTimeoutInMillis);
-
-        getInstrumentation().runOnMainSync(new Runnable() {
-
-            @Override
-            public void run() {
-                activity.clearCache();
-            }
-        });
-        if (mForwardServer != null) {
-            mForwardServer.stop();
-            mForwardServer = null;
-        }
-        try {
-            Thread.sleep(5000);
-        } catch (InterruptedException e) {
-        }
-        dumpMemoryInfo();
-
-        // Kill activity
-        activity.finish();
-    }
-
-    private void freeMem() {
-        Log.v(LOGTAG, "freeMem: calling gc...");
-        final CountDownLatch latch = new CountDownLatch(1);
-        @SuppressWarnings("unused")
-        Object dummy = new Object() {
-            // this object instance is used to track gc
-            @Override
-            protected void finalize() throws Throwable {
-                latch.countDown();
-                super.finalize();
-            }
-        };
-        dummy = null;
-        System.gc();
-        try {
-            if (!latch.await(MAX_GC_WAIT_SEC, TimeUnit.SECONDS)) {
-                Log.w(LOGTAG, "gc did not happen in 10s");
-            }
-        } catch (InterruptedException e) {
-            //ignore
-        }
-    }
-
-    private void printRow(PrintStream ps, String format, Object...objs) {
-        ps.println(String.format(format, objs));
-    }
-
-    private void dumpMemoryInfo() {
-        try {
-            freeMem();
-            Log.v(LOGTAG, "Dumping memory information.");
-
-            FileOutputStream out = new FileOutputStream(LOAD_TEST_RESULT, true);
-            PrintStream ps = new PrintStream(out);
-
-            ps.print("\n\n\n");
-            ps.println("** MEMINFO in pid " + Process.myPid()
-                    + " [com.android.dumprendertree] **");
-            String formatString = "%17s %8s %8s %8s %8s";
-
-            long nativeMax = Debug.getNativeHeapSize() / 1024;
-            long nativeAllocated = Debug.getNativeHeapAllocatedSize() / 1024;
-            long nativeFree = Debug.getNativeHeapFreeSize() / 1024;
-            Runtime runtime = Runtime.getRuntime();
-            long dalvikMax = runtime.totalMemory() / 1024;
-            long dalvikFree = runtime.freeMemory() / 1024;
-            long dalvikAllocated = dalvikMax - dalvikFree;
-
-
-            Debug.MemoryInfo memInfo = new Debug.MemoryInfo();
-            Debug.getMemoryInfo(memInfo);
-
-            final int nativeShared = memInfo.nativeSharedDirty;
-            final int dalvikShared = memInfo.dalvikSharedDirty;
-            final int otherShared = memInfo.otherSharedDirty;
-
-            final int nativePrivate = memInfo.nativePrivateDirty;
-            final int dalvikPrivate = memInfo.dalvikPrivateDirty;
-            final int otherPrivate = memInfo.otherPrivateDirty;
-
-            printRow(ps, formatString, "", "native", "dalvik", "other", "total");
-            printRow(ps, formatString, "size:", nativeMax, dalvikMax, "N/A", nativeMax + dalvikMax);
-            printRow(ps, formatString, "allocated:", nativeAllocated, dalvikAllocated, "N/A",
-                    nativeAllocated + dalvikAllocated);
-            printRow(ps, formatString, "free:", nativeFree, dalvikFree, "N/A",
-                    nativeFree + dalvikFree);
-
-            printRow(ps, formatString, "(Pss):", memInfo.nativePss, memInfo.dalvikPss,
-                    memInfo.otherPss, memInfo.nativePss + memInfo.dalvikPss + memInfo.otherPss);
-
-            printRow(ps, formatString, "(shared dirty):", nativeShared, dalvikShared, otherShared,
-                    nativeShared + dalvikShared + otherShared);
-            printRow(ps, formatString, "(priv dirty):", nativePrivate, dalvikPrivate, otherPrivate,
-                    nativePrivate + dalvikPrivate + otherPrivate);
-            ps.print("\n\n\n");
-            ps.flush();
-            ps.close();
-            out.flush();
-            out.close();
-        } catch (IOException e) {
-            Log.e(LOGTAG, e.getMessage());
-        }
-    }
-
-    // A convenient method to be called by another activity.
-    private void runTestAndWaitUntilDone(TestShellActivity activity, String url, int timeout) {
-        activity.setCallback(new TestShellCallback() {
-            @Override
-            public void finished() {
-                synchronized (LoadTestsAutoTest.this) {
-                    mFinished = true;
-                    LoadTestsAutoTest.this.notifyAll();
-                }
-            }
-
-            @Override
-            public void timedOut(String url) {
-            }
-
-            @Override
-            public void dumpResult(String webViewDump) {
-                String lines[] = webViewDump.split("\\r?\\n");
-                for (String line : lines) {
-                    line = line.trim();
-                    // parse for a line like this:
-                    // totals:   9620.00 11947.00    10099.75    380.38
-                    // and return the 3rd number, which is mean
-                    if (line.startsWith("totals:")) {
-                        line = line.substring(7).trim(); // strip "totals:"
-                        String[] numbers = line.split("\\s+");
-                        if (numbers.length == 4) {
-                            Bundle b = new Bundle();
-                            b.putString("mean", numbers[2]);
-                            getInstrumentation().sendStatus(Activity.RESULT_FIRST_USER, b);
-                        }
-                    }
-                }
-            }
-        });
-
-        mFinished = false;
-        Intent intent = new Intent(Intent.ACTION_VIEW);
-        intent.setClass(activity, TestShellActivity.class);
-        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
-        intent.putExtra(TestShellActivity.TEST_URL, url);
-        intent.putExtra(TestShellActivity.TIMEOUT_IN_MILLIS, timeout);
-        intent.putExtra(TestShellActivity.RESULT_FILE, LOAD_TEST_RESULT);
-        activity.startActivity(intent);
-
-        // Wait until done.
-        synchronized (this) {
-            while(!mFinished) {
-                try {
-                    this.wait();
-                } catch (InterruptedException e) { }
-            }
-        }
-    }
-
-    public void copyRunnerAssetsToCache() {
-        try {
-            Context targetContext = getInstrumentation().getTargetContext();
-            File cacheDir = targetContext.getCacheDir();
-
-            for( int i=0; i< LOAD_TEST_RUNNER_FILES.length; i++) {
-                InputStream in = targetContext.getAssets().open(
-                        LOAD_TEST_RUNNER_FILES[i]);
-                OutputStream out = new FileOutputStream(
-                        new File(cacheDir, LOAD_TEST_RUNNER_FILES[i]));
-
-                byte[] buf = new byte[2048];
-                int len;
-
-                while ((len = in.read(buf)) >= 0 ) {
-                    out.write(buf, 0, len);
-                }
-                out.close();
-                in.close();
-            }
-        }catch (IOException e) {
-          e.printStackTrace();
-        }
-
-    }
-
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/Menu.java b/tests/DumpRenderTree/src/com/android/dumprendertree/Menu.java
deleted file mode 100644
index 0b00d65..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/Menu.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.dumprendertree;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Environment;
-import android.util.Log;
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-
-public class Menu extends FileList {
-
-    private static final int MENU_START = 0x01;
-    private static String LOGTAG = "MenuActivity";
-    static final String LAYOUT_TESTS_LIST_FILE =
-        Environment.getExternalStorageDirectory() + "/android/layout_tests_list.txt";
-
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-    }
-
-    boolean fileFilter(File f) {
-    	if (f.getName().startsWith("."))
-    		return false;
-    	if (f.getName().equalsIgnoreCase("resources"))
-    		return false;
-    	if (f.isDirectory())
-    		return true;
-    	if (f.getPath().toLowerCase().endsWith("ml"))
-    		return true;
-    	return false;
-    }
-
-    void processFile(String filename, boolean selection) {
-        Intent intent = new Intent(Intent.ACTION_VIEW);
-        intent.setClass(this, TestShellActivity.class);
-        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
-        intent.putExtra(TestShellActivity.TEST_URL, "file://" + filename);
-        intent.putExtra(TestShellActivity.TOTAL_TEST_COUNT, 1);
-        intent.putExtra(TestShellActivity.CURRENT_TEST_NUMBER, 1);
-        startActivity(intent);
-    }
-
-    @Override
-    void processDirectory(String path, boolean selection) {
-        int testCount = generateTestList(path);
-        Intent intent = new Intent(Intent.ACTION_VIEW);
-        intent.setClass(this, TestShellActivity.class);
-        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
-        intent.putExtra(TestShellActivity.UI_AUTO_TEST, LAYOUT_TESTS_LIST_FILE);
-        intent.putExtra(TestShellActivity.TOTAL_TEST_COUNT, testCount);
-        // TestShellActivity will process this intent once and increment the test index
-        // before running the first test, so pass 0 here to allow for that.
-        intent.putExtra(TestShellActivity.CURRENT_TEST_NUMBER, 0);
-        startActivity(intent);
-    }
-
-    private int generateTestList(String path) {
-        int testCount = 0;
-        try {
-            File tests_list = new File(LAYOUT_TESTS_LIST_FILE);
-            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(tests_list, false));
-            testCount = FsUtils.writeLayoutTestListRecursively(
-                    bos, path, false); // Don't ignore results
-            bos.flush();
-            bos.close();
-       } catch (Exception e) {
-           Log.e(LOGTAG, "Error when creating test list: " + e.getMessage());
-       }
-       return testCount;
-    }
-
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/ReliabilityTestActivity.java b/tests/DumpRenderTree/src/com/android/dumprendertree/ReliabilityTestActivity.java
deleted file mode 100644
index 22b587f..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/ReliabilityTestActivity.java
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.dumprendertree;
-
-import android.app.Activity;
-import android.app.ActivityThread;
-import android.graphics.Bitmap;
-import android.net.http.SslError;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.util.Log;
-import android.view.ViewGroup;
-import android.webkit.HttpAuthHandler;
-import android.webkit.JsPromptResult;
-import android.webkit.JsResult;
-import android.webkit.SslErrorHandler;
-import android.webkit.WebChromeClient;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
-import android.webkit.WebSettings.LayoutAlgorithm;
-import android.widget.LinearLayout;
-import android.widget.LinearLayout.LayoutParams;
-
-public class ReliabilityTestActivity extends Activity {
-
-    public static final String TEST_URL_ACTION = "com.andrdoid.dumprendertree.TestUrlAction";
-    public static final String PARAM_URL = "URL";
-    public static final String PARAM_TIMEOUT = "Timeout";
-    public static final int RESULT_TIMEOUT = 0xDEAD;
-    public static final int MSG_TIMEOUT = 0xC001;
-    public static final int MSG_NAVIGATE = 0xC002;
-    public static final String MSG_NAV_URL = "url";
-    public static final String MSG_NAV_LOGTIME = "logtime";
-
-    private static final String LOGTAG = "ReliabilityTestActivity";
-
-    private WebView webView;
-    private SimpleWebViewClient webViewClient;
-    private SimpleChromeClient chromeClient;
-    private Handler handler;
-    private boolean timeoutFlag;
-    private boolean logTime;
-    private boolean pageDone;
-    private Object pageDoneLock;
-    private int pageStartCount;
-    private int manualDelay;
-    private long startTime;
-    private long pageLoadTime;
-    private PageDoneRunner pageDoneRunner = new PageDoneRunner();
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        Log.v(LOGTAG, "onCreate, inst=" + Integer.toHexString(hashCode()));
-
-        LinearLayout contentView = new LinearLayout(this);
-        contentView.setOrientation(LinearLayout.VERTICAL);
-        setContentView(contentView);
-        setTitle("Idle");
-
-        webView = new WebView(this);
-        webView.getSettings().setJavaScriptEnabled(true);
-        webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
-        webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NORMAL);
-
-        webViewClient = new SimpleWebViewClient();
-        chromeClient = new SimpleChromeClient();
-        webView.setWebViewClient(webViewClient);
-        webView.setWebChromeClient(chromeClient);
-
-        contentView.addView(webView, new LayoutParams(
-                ViewGroup.LayoutParams.MATCH_PARENT,
-                ViewGroup.LayoutParams.MATCH_PARENT, 0.0f));
-
-        handler = new Handler() {
-            @Override
-            public void handleMessage(Message msg) {
-                switch (msg.what) {
-                    case MSG_TIMEOUT:
-                        handleTimeout();
-                        return;
-                    case MSG_NAVIGATE:
-                        manualDelay = msg.arg2;
-                        navigate(msg.getData().getString(MSG_NAV_URL), msg.arg1);
-                        logTime = msg.getData().getBoolean(MSG_NAV_LOGTIME);
-                        return;
-                }
-            }
-        };
-
-        pageDoneLock = new Object();
-    }
-
-    public void reset() {
-        synchronized (pageDoneLock) {
-            pageDone = false;
-        }
-        timeoutFlag = false;
-        pageStartCount = 0;
-        chromeClient.resetJsTimeout();
-    }
-
-    private void navigate(String url, int timeout) {
-        if(url == null) {
-            Log.v(LOGTAG, "URL is null, cancelling...");
-            finish();
-        }
-        webView.stopLoading();
-        if(logTime) {
-            webView.clearCache(true);
-        }
-        startTime = System.currentTimeMillis();
-        Log.v(LOGTAG, "Navigating to URL: " + url);
-        webView.loadUrl(url);
-
-        if(timeout != 0) {
-            //set a timer with specified timeout (in ms)
-            handler.sendMessageDelayed(handler.obtainMessage(MSG_TIMEOUT),
-                    timeout);
-        }
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        Log.v(LOGTAG, "onDestroy, inst=" + Integer.toHexString(hashCode()));
-        webView.clearCache(true);
-        webView.destroy();
-    }
-
-    private boolean isPageDone() {
-        synchronized (pageDoneLock) {
-            return pageDone;
-        }
-    }
-
-    private void setPageDone(boolean pageDone) {
-        synchronized (pageDoneLock) {
-            this.pageDone = pageDone;
-            pageDoneLock.notifyAll();
-        }
-    }
-
-    private void handleTimeout() {
-        int progress = webView.getProgress();
-        webView.stopLoading();
-        Log.v(LOGTAG, "Page timeout triggered, progress = " + progress);
-        timeoutFlag = true;
-        handler.postDelayed(pageDoneRunner, manualDelay);
-    }
-
-    public boolean waitUntilDone() {
-        validateNotAppThread();
-        synchronized (pageDoneLock) {
-            while(!isPageDone()) {
-                try {
-                    pageDoneLock.wait();
-                } catch (InterruptedException ie) {
-                    //no-op
-                }
-            }
-        }
-        return timeoutFlag;
-    }
-
-    public Handler getHandler() {
-        return handler;
-    }
-
-    private final void validateNotAppThread() {
-        if (Looper.myLooper() == Looper.getMainLooper()) {
-            throw new RuntimeException(
-                "This method can not be called from the main application thread");
-        }
-    }
-
-    public long getPageLoadTime() {
-        return pageLoadTime;
-    }
-
-    class SimpleWebViewClient extends WebViewClient {
-
-        @Override
-        public void onReceivedError(WebView view, int errorCode, String description,
-                String failingUrl) {
-            Log.v(LOGTAG, "Received WebCore error: code=" + errorCode
-                    + ", description=" + description
-                    + ", url=" + failingUrl);
-        }
-
-        @Override
-        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
-            //ignore certificate error
-            Log.v(LOGTAG, "Received SSL error: " + error.toString());
-            handler.proceed();
-        }
-
-        @Override
-        public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host,
-                String realm) {
-            // cancel http auth request
-            handler.cancel();
-        }
-
-        @Override
-        public void onPageStarted(WebView view, String url, Bitmap favicon) {
-            pageStartCount++;
-            Log.v(LOGTAG, "onPageStarted: " + url);
-        }
-
-        @Override
-        public void onPageFinished(WebView view, String url) {
-            Log.v(LOGTAG, "onPageFinished: " + url);
-            // let handleTimeout take care of finishing the page
-            if(!timeoutFlag)
-                handler.postDelayed(new WebViewStatusChecker(), 500);
-        }
-    }
-
-    class SimpleChromeClient extends WebChromeClient {
-
-        private int timeoutCounter = 0;
-
-        @Override
-        public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
-            result.confirm();
-            return true;
-        }
-
-        @Override
-        public boolean onJsBeforeUnload(WebView view, String url, String message, JsResult result) {
-            result.confirm();
-            return true;
-        }
-
-        @Override
-        public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
-            result.confirm();
-            return true;
-        }
-
-        @Override
-        public boolean onJsPrompt(WebView view, String url, String message, String defaultValue,
-                JsPromptResult result) {
-            result.confirm();
-            return true;
-        }
-
-        @Override
-        public boolean onJsTimeout() {
-            timeoutCounter++;
-            Log.v(LOGTAG, "JavaScript timeout, count=" + timeoutCounter);
-            return timeoutCounter > 2;
-        }
-
-        public void resetJsTimeout() {
-            timeoutCounter = 0;
-        }
-
-        @Override
-        public void onReceivedTitle(WebView view, String title) {
-            ReliabilityTestActivity.this.setTitle(title);
-        }
-    }
-
-    class WebViewStatusChecker implements Runnable {
-
-        private int initialStartCount;
-
-        public WebViewStatusChecker() {
-            initialStartCount = pageStartCount;
-        }
-
-        public void run() {
-            if (initialStartCount == pageStartCount && !isPageDone()) {
-                handler.removeMessages(MSG_TIMEOUT);
-                webView.stopLoading();
-                handler.postDelayed(pageDoneRunner, manualDelay);
-            }
-        }
-    }
-
-    class PageDoneRunner implements Runnable {
-
-        public void run() {
-            Log.v(LOGTAG, "Finishing URL: " + webView.getUrl());
-            pageLoadTime = System.currentTimeMillis() - startTime;
-            setPageDone(true);
-        }
-    }
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java b/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java
deleted file mode 100644
index 42d6457..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java
+++ /dev/null
@@ -1,946 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.dumprendertree;
-
-import com.android.dumprendertree.forwarder.ForwardService;
-
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.net.http.SslError;
-import android.os.Bundle;
-import android.os.Environment;
-import android.os.Handler;
-import android.os.Message;
-import android.util.Log;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.webkit.ConsoleMessage;
-import android.webkit.CookieManager;
-import android.webkit.GeolocationPermissions;
-import android.webkit.HttpAuthHandler;
-import android.webkit.JsPromptResult;
-import android.webkit.JsResult;
-import android.webkit.SslErrorHandler;
-import android.webkit.WebChromeClient;
-import android.webkit.WebSettings;
-import android.webkit.WebSettingsClassic;
-import android.webkit.WebStorage;
-import android.webkit.WebView;
-import android.webkit.WebViewClassic;
-import android.webkit.WebViewClient;
-import android.widget.LinearLayout;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Vector;
-
-public class TestShellActivity extends Activity implements LayoutTestController {
-
-    static enum DumpDataType {DUMP_AS_TEXT, EXT_REPR, NO_OP}
-
-    // String constants for use with layoutTestController.overridePreferences
-    private final String WEBKIT_OFFLINE_WEB_APPLICATION_CACHE_ENABLED =
-            "WebKitOfflineWebApplicationCacheEnabled";
-    private final String WEBKIT_USES_PAGE_CACHE_PREFERENCE_KEY = "WebKitUsesPageCachePreferenceKey";
-
-    public class AsyncHandler extends Handler {
-        @Override
-        public void handleMessage(Message msg) {
-            if (msg.what == MSG_TIMEOUT) {
-                mTimedOut = true;
-                mWebView.stopLoading();
-                if (mCallback != null)
-                    mCallback.timedOut(mWebView.getUrl());
-                if (!mRequestedWebKitData) {
-                    requestWebKitData();
-                } else {
-                    // if timed out and webkit data has been dumped before
-                    // finish directly
-                    finished();
-                }
-                return;
-            } else if (msg.what == MSG_WEBKIT_DATA) {
-                Log.v(LOGTAG, "Received WebView dump data");
-                mHandler.removeMessages(MSG_DUMP_TIMEOUT);
-                TestShellActivity.this.dump(mTimedOut, (String)msg.obj);
-                return;
-            } else if (msg.what == MSG_DUMP_TIMEOUT) {
-                throw new RuntimeException("WebView dump timeout, is it pegged?");
-            }
-            super.handleMessage(msg);
-        }
-    }
-
-    public void requestWebKitData() {
-        setDumpTimeout(DUMP_TIMEOUT_MS);
-        Message callback = mHandler.obtainMessage(MSG_WEBKIT_DATA);
-
-        if (mRequestedWebKitData)
-            throw new AssertionError("Requested webkit data twice: " + mWebView.getUrl());
-
-        mRequestedWebKitData = true;
-        Log.v(LOGTAG, "message sent to WebView to dump text.");
-        switch (mDumpDataType) {
-            case DUMP_AS_TEXT:
-                callback.arg1 = mDumpTopFrameAsText ? 1 : 0;
-                callback.arg2 = mDumpChildFramesAsText ? 1 : 0;
-                mWebViewClassic.documentAsText(callback);
-                break;
-            case EXT_REPR:
-                mWebViewClassic.externalRepresentation(callback);
-                break;
-            default:
-                finished();
-                break;
-        }
-    }
-
-    private void setDumpTimeout(long timeout) {
-        Log.v(LOGTAG, "setting dump timeout at " + timeout);
-        Message msg = mHandler.obtainMessage(MSG_DUMP_TIMEOUT);
-        mHandler.sendMessageDelayed(msg, timeout);
-    }
-
-    public void clearCache() {
-      mWebView.freeMemory();
-    }
-
-    @Override
-    protected void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-        requestWindowFeature(Window.FEATURE_PROGRESS);
-
-        LinearLayout contentView = new LinearLayout(this);
-        contentView.setOrientation(LinearLayout.VERTICAL);
-        setContentView(contentView);
-
-        CookieManager.setAcceptFileSchemeCookies(true);
-        mWebView = new WebView(this);
-        mWebViewClassic = WebViewClassic.fromWebView(mWebView);
-        mEventSender = new WebViewEventSender(mWebView);
-        mCallbackProxy = new CallbackProxy(mEventSender, this);
-
-        mWebView.addJavascriptInterface(mCallbackProxy, "layoutTestController");
-        mWebView.addJavascriptInterface(mCallbackProxy, "eventSender");
-        setupWebViewForLayoutTests(mWebView, mCallbackProxy);
-
-        contentView.addView(mWebView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, 0.0f));
-
-        mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
-
-        // Expose window.gc function to JavaScript. JSC build exposes
-        // this function by default, but V8 requires the flag to turn it on.
-        // WebView::setJsFlags is noop in JSC build.
-        mWebViewClassic.setJsFlags("--expose_gc");
-
-        mHandler = new AsyncHandler();
-
-        Intent intent = getIntent();
-        if (intent != null) {
-            executeIntent(intent);
-        }
-
-        // This is asynchronous, but it gets processed by WebCore before it starts loading pages.
-        mWebViewClassic.setUseMockDeviceOrientation();
-    }
-
-    @Override
-    protected void onNewIntent(Intent intent) {
-        super.onNewIntent(intent);
-        executeIntent(intent);
-    }
-
-    private void executeIntent(Intent intent) {
-        resetTestStatus();
-        if (!Intent.ACTION_VIEW.equals(intent.getAction())) {
-            return;
-        }
-
-        mTotalTestCount = intent.getIntExtra(TOTAL_TEST_COUNT, mTotalTestCount);
-        mCurrentTestNumber = intent.getIntExtra(CURRENT_TEST_NUMBER, mCurrentTestNumber);
-
-        mTestUrl = intent.getStringExtra(TEST_URL);
-        if (mTestUrl == null) {
-            mUiAutoTestPath = intent.getStringExtra(UI_AUTO_TEST);
-            if(mUiAutoTestPath != null) {
-                beginUiAutoTest();
-            }
-            return;
-        }
-
-        mResultFile = intent.getStringExtra(RESULT_FILE);
-        mTimeoutInMillis = intent.getIntExtra(TIMEOUT_IN_MILLIS, 0);
-        mStopOnRefError = intent.getBooleanExtra(STOP_ON_REF_ERROR, false);
-        setTitle("Test " + mCurrentTestNumber + " of " + mTotalTestCount);
-        float ratio = (float)mCurrentTestNumber / mTotalTestCount;
-        int progress = (int)(ratio * Window.PROGRESS_END);
-        getWindow().setFeatureInt(Window.FEATURE_PROGRESS, progress);
-
-        Log.v(LOGTAG, "  Loading " + mTestUrl);
-
-        if (mTestUrl.contains("/dumpAsText/")) {
-            dumpAsText(false);
-        }
-
-        mWebView.loadUrl(mTestUrl);
-
-        if (mTimeoutInMillis > 0) {
-            // Create a timeout timer
-            Message m = mHandler.obtainMessage(MSG_TIMEOUT);
-            mHandler.sendMessageDelayed(m, mTimeoutInMillis);
-        }
-    }
-
-    private void beginUiAutoTest() {
-        try {
-            mTestListReader = new BufferedReader(
-                    new FileReader(mUiAutoTestPath));
-        } catch (IOException ioe) {
-            Log.e(LOGTAG, "Failed to open test list for read.", ioe);
-            finishUiAutoTest();
-            return;
-        }
-        moveToNextTest();
-    }
-
-    private void finishUiAutoTest() {
-        try {
-            if(mTestListReader != null)
-                mTestListReader.close();
-        } catch (IOException ioe) {
-            Log.w(LOGTAG, "Failed to close test list file.", ioe);
-        }
-        ForwardService.getForwardService().stopForwardService();
-        finished();
-    }
-
-    private void moveToNextTest() {
-        String url = null;
-        try {
-            url = mTestListReader.readLine();
-        } catch (IOException ioe) {
-            Log.e(LOGTAG, "Failed to read next test.", ioe);
-            finishUiAutoTest();
-            return;
-        }
-        if (url == null) {
-            mUiAutoTestPath = null;
-            finishUiAutoTest();
-            AlertDialog.Builder builder = new AlertDialog.Builder(this);
-            builder.setMessage("All tests finished. Exit?")
-                   .setCancelable(false)
-                   .setPositiveButton("Yes", new OnClickListener(){
-                       @Override
-                    public void onClick(DialogInterface dialog, int which) {
-                           TestShellActivity.this.finish();
-                       }
-                   })
-                   .setNegativeButton("No", new OnClickListener(){
-                       @Override
-                    public void onClick(DialogInterface dialog, int which) {
-                           dialog.cancel();
-                       }
-                   });
-            builder.create().show();
-            return;
-        }
-        Intent intent = new Intent(Intent.ACTION_VIEW);
-        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
-        intent.putExtra(TestShellActivity.TEST_URL, FsUtils.getTestUrl(url));
-        intent.putExtra(TestShellActivity.CURRENT_TEST_NUMBER, ++mCurrentTestNumber);
-        intent.putExtra(TIMEOUT_IN_MILLIS, 10000);
-        executeIntent(intent);
-    }
-
-    @Override
-    protected void onStop() {
-        super.onStop();
-        mWebView.stopLoading();
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        mWebView.destroy();
-        mWebView = null;
-        mWebViewClassic = null;
-    }
-
-    @Override
-    public void onLowMemory() {
-        super.onLowMemory();
-        Log.e(LOGTAG, "Low memory, clearing caches");
-        mWebView.freeMemory();
-    }
-
-    // Dump the page
-    public void dump(boolean timeout, String webkitData) {
-        mDumpWebKitData = true;
-        if (mResultFile == null || mResultFile.length() == 0) {
-            finished();
-            return;
-        }
-
-        if (mCallback != null) {
-            mCallback.dumpResult(webkitData);
-        }
-
-        try {
-            File parentDir = new File(mResultFile).getParentFile();
-            if (!parentDir.exists()) {
-                parentDir.mkdirs();
-            }
-
-            FileOutputStream os = new FileOutputStream(mResultFile);
-            if (timeout) {
-                Log.w("Layout test: Timeout", mResultFile);
-                os.write(TIMEOUT_STR.getBytes());
-                os.write('\n');
-            }
-            if (mDumpTitleChanges)
-                os.write(mTitleChanges.toString().getBytes());
-            if (mDialogStrings != null)
-                os.write(mDialogStrings.toString().getBytes());
-            mDialogStrings = null;
-            if (mDatabaseCallbackStrings != null)
-                os.write(mDatabaseCallbackStrings.toString().getBytes());
-            mDatabaseCallbackStrings = null;
-            if (mConsoleMessages != null)
-                os.write(mConsoleMessages.toString().getBytes());
-            mConsoleMessages = null;
-            if (webkitData != null)
-                os.write(webkitData.getBytes());
-            os.flush();
-            os.close();
-        } catch (IOException ex) {
-            Log.e(LOGTAG, "Cannot write to " + mResultFile + ", " + ex.getMessage());
-        }
-
-        finished();
-    }
-
-    public void setCallback(TestShellCallback callback) {
-        mCallback = callback;
-    }
-
-    public boolean finished() {
-        if (canMoveToNextTest()) {
-            mHandler.removeMessages(MSG_TIMEOUT);
-            if (mUiAutoTestPath != null) {
-                //don't really finish here
-                moveToNextTest();
-            } else {
-                if (mCallback != null) {
-                    mCallback.finished();
-                }
-            }
-            return true;
-        }
-        return false;
-    }
-
-    public void setDefaultDumpDataType(DumpDataType defaultDumpDataType) {
-        mDefaultDumpDataType = defaultDumpDataType;
-    }
-
-    // .......................................
-    // LayoutTestController Functions
-    @Override
-    public void dumpAsText(boolean enablePixelTests) {
-        // Added after webkit update to r63859. See trac.webkit.org/changeset/63730.
-        if (enablePixelTests) {
-            Log.v(LOGTAG, "dumpAsText(enablePixelTests == true) not implemented on Android!");
-        }
-
-        mDumpDataType = DumpDataType.DUMP_AS_TEXT;
-        mDumpTopFrameAsText = true;
-        if (mWebView != null) {
-            String url = mWebView.getUrl();
-            Log.v(LOGTAG, "dumpAsText called: "+url);
-        }
-    }
-
-    @Override
-    public void dumpChildFramesAsText() {
-        mDumpDataType = DumpDataType.DUMP_AS_TEXT;
-        mDumpChildFramesAsText = true;
-        if (mWebView != null) {
-            String url = mWebView.getUrl();
-            Log.v(LOGTAG, "dumpChildFramesAsText called: "+url);
-        }
-    }
-
-    @Override
-    public void waitUntilDone() {
-        mWaitUntilDone = true;
-        String url = mWebView.getUrl();
-        Log.v(LOGTAG, "waitUntilDone called: " + url);
-    }
-
-    @Override
-    public void notifyDone() {
-        String url = mWebView.getUrl();
-        Log.v(LOGTAG, "notifyDone called: " + url);
-        if (mWaitUntilDone) {
-            mWaitUntilDone = false;
-            if (!mRequestedWebKitData && !mTimedOut && !finished()) {
-                requestWebKitData();
-            }
-        }
-    }
-
-    @Override
-    public void display() {
-        mWebView.invalidate();
-    }
-
-    @Override
-    public void clearBackForwardList() {
-        mWebView.clearHistory();
-
-    }
-
-    @Override
-    public void dumpBackForwardList() {
-        //printf("\n============== Back Forward List ==============\n");
-        // mWebHistory
-        //printf("===============================================\n");
-
-    }
-
-    @Override
-    public void dumpChildFrameScrollPositions() {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void dumpEditingCallbacks() {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void dumpSelectionRect() {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void dumpTitleChanges() {
-        if (!mDumpTitleChanges) {
-            mTitleChanges = new StringBuffer();
-        }
-        mDumpTitleChanges = true;
-    }
-
-    @Override
-    public void keepWebHistory() {
-        if (!mKeepWebHistory) {
-            mWebHistory = new Vector();
-        }
-        mKeepWebHistory = true;
-    }
-
-    @Override
-    public void queueBackNavigation(int howfar) {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void queueForwardNavigation(int howfar) {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void queueLoad(String Url, String frameTarget) {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void queueReload() {
-        mWebView.reload();
-    }
-
-    @Override
-    public void queueScript(String scriptToRunInCurrentContext) {
-        mWebView.loadUrl("javascript:"+scriptToRunInCurrentContext);
-    }
-
-    @Override
-    public void repaintSweepHorizontally() {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void setAcceptsEditing(boolean b) {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void setMainFrameIsFirstResponder(boolean b) {
-        // TODO Auto-generated method stub
-
-    }
-
-    @Override
-    public void setWindowIsKey(boolean b) {
-        // This is meant to show/hide the window. The best I can find
-        // is setEnabled()
-        mWebView.setEnabled(b);
-    }
-
-    @Override
-    public void testRepaint() {
-        mWebView.invalidate();
-    }
-
-    @Override
-    public void dumpDatabaseCallbacks() {
-        Log.v(LOGTAG, "dumpDatabaseCallbacks called.");
-        mDumpDatabaseCallbacks = true;
-    }
-
-    @Override
-    public void setCanOpenWindows() {
-        Log.v(LOGTAG, "setCanOpenWindows called.");
-        mCanOpenWindows = true;
-    }
-
-    @Override
-    public void setMockGeolocationPosition(double latitude, double longitude, double accuracy) {
-        WebViewClassic.fromWebView(mWebView).setMockGeolocationPosition(latitude, longitude,
-                accuracy);
-    }
-
-    @Override
-    public void setMockGeolocationError(int code, String message) {
-        WebViewClassic.fromWebView(mWebView).setMockGeolocationError(code, message);
-    }
-
-    @Override
-    public void setGeolocationPermission(boolean allow) {
-        Log.v(LOGTAG, "setGeolocationPermission() allow=" + allow);
-        WebViewClassic.fromWebView(mWebView).setMockGeolocationPermission(allow);
-    }
-
-    @Override
-    public void setMockDeviceOrientation(boolean canProvideAlpha, double alpha,
-            boolean canProvideBeta, double beta, boolean canProvideGamma, double gamma) {
-        WebViewClassic.fromWebView(mWebView).setMockDeviceOrientation(canProvideAlpha, alpha,
-                canProvideBeta, beta, canProvideGamma, gamma);
-    }
-
-    @Override
-    public void overridePreference(String key, boolean value) {
-        // TODO: We should look up the correct WebView for the frame which
-        // called the layoutTestController method. Currently, we just use the
-        // WebView for the main frame. EventSender suffers from the same
-        // problem.
-        if (WEBKIT_OFFLINE_WEB_APPLICATION_CACHE_ENABLED.equals(key)) {
-            mWebViewClassic.getSettings().setAppCacheEnabled(value);
-        } else if (WEBKIT_USES_PAGE_CACHE_PREFERENCE_KEY.equals(key)) {
-            // Cache the maximum possible number of pages.
-            mWebViewClassic.getSettings().setPageCacheCapacity(Integer.MAX_VALUE);
-        } else {
-            Log.w(LOGTAG, "LayoutTestController.overridePreference(): " +
-                  "Unsupported preference '" + key + "'");
-        }
-    }
-
-    @Override
-    public void setXSSAuditorEnabled (boolean flag) {
-        mWebViewClassic.getSettings().setXSSAuditorEnabled(flag);
-    }
-
-    private final WebViewClient mViewClient = new WebViewClient(){
-        @Override
-        public void onPageFinished(WebView view, String url) {
-            Log.v(LOGTAG, "onPageFinished, url=" + url);
-            mPageFinished = true;
-
-            // Calling finished() will check if we've met all the conditions for completing
-            // this test and move to the next one if we are ready. Otherwise we ask WebCore to
-            // dump the page.
-            if (finished()) {
-                return;
-            }
-
-            if (!mWaitUntilDone && !mRequestedWebKitData && !mTimedOut) {
-                requestWebKitData();
-            } else {
-                if (mWaitUntilDone) {
-                    Log.v(LOGTAG, "page finished loading but waiting for notifyDone to be called: " + url);
-                }
-
-                if (mRequestedWebKitData) {
-                    Log.v(LOGTAG, "page finished loading but webkit data has already been requested: " + url);
-                }
-
-                if (mTimedOut) {
-                    Log.v(LOGTAG, "page finished loading but already timed out: " + url);
-                }
-            }
-
-            super.onPageFinished(view, url);
-        }
-
-        @Override
-        public void onPageStarted(WebView view, String url, Bitmap favicon) {
-            Log.v(LOGTAG, "onPageStarted, url=" + url);
-            mPageFinished = false;
-            super.onPageStarted(view, url, favicon);
-        }
-
-        @Override
-        public void onReceivedError(WebView view, int errorCode, String description,
-                String failingUrl) {
-            Log.v(LOGTAG, "onReceivedError, errorCode=" + errorCode
-                    + ", desc=" + description + ", url=" + failingUrl);
-            super.onReceivedError(view, errorCode, description, failingUrl);
-        }
-
-        @Override
-        public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler,
-                String host, String realm) {
-            if (handler.useHttpAuthUsernamePassword() && view != null) {
-                String[] credentials = view.getHttpAuthUsernamePassword(host, realm);
-                if (credentials != null && credentials.length == 2) {
-                    handler.proceed(credentials[0], credentials[1]);
-                    return;
-                }
-            }
-            handler.cancel();
-        }
-
-        @Override
-        public void onReceivedSslError(WebView view, SslErrorHandler handler,
-                SslError error) {
-            handler.proceed();
-        }
-    };
-
-
-    private final WebChromeClient mChromeClient = new WebChromeClient() {
-        @Override
-        public void onReceivedTitle(WebView view, String title) {
-            setTitle("Test " + mCurrentTestNumber + " of " + mTotalTestCount + ": "+ title);
-            if (mDumpTitleChanges) {
-                mTitleChanges.append("TITLE CHANGED: ");
-                mTitleChanges.append(title);
-                mTitleChanges.append("\n");
-            }
-        }
-
-        @Override
-        public boolean onJsAlert(WebView view, String url, String message,
-                JsResult result) {
-            if (mDialogStrings == null) {
-                mDialogStrings = new StringBuffer();
-            }
-            mDialogStrings.append("ALERT: ");
-            mDialogStrings.append(message);
-            mDialogStrings.append('\n');
-            result.confirm();
-            return true;
-        }
-
-        @Override
-        public boolean onJsConfirm(WebView view, String url, String message,
-                JsResult result) {
-            if (mDialogStrings == null) {
-                mDialogStrings = new StringBuffer();
-            }
-            mDialogStrings.append("CONFIRM: ");
-            mDialogStrings.append(message);
-            mDialogStrings.append('\n');
-            result.confirm();
-            return true;
-        }
-
-        @Override
-        public boolean onJsPrompt(WebView view, String url, String message,
-                String defaultValue, JsPromptResult result) {
-            if (mDialogStrings == null) {
-                mDialogStrings = new StringBuffer();
-            }
-            mDialogStrings.append("PROMPT: ");
-            mDialogStrings.append(message);
-            mDialogStrings.append(", default text: ");
-            mDialogStrings.append(defaultValue);
-            mDialogStrings.append('\n');
-            result.confirm();
-            return true;
-        }
-
-        @Override
-        public boolean onJsTimeout() {
-            Log.v(LOGTAG, "JavaScript timeout");
-            return false;
-        }
-
-        @Override
-        public void onExceededDatabaseQuota(String url_str,
-                String databaseIdentifier, long currentQuota,
-                long estimatedSize, long totalUsedQuota,
-                WebStorage.QuotaUpdater callback) {
-            if (mDumpDatabaseCallbacks) {
-                if (mDatabaseCallbackStrings == null) {
-                    mDatabaseCallbackStrings = new StringBuffer();
-                }
-
-                String protocol = "";
-                String host = "";
-                int port = 0;
-
-                try {
-                    URL url = new URL(url_str);
-                    protocol = url.getProtocol();
-                    host = url.getHost();
-                    if (url.getPort() > -1) {
-                        port = url.getPort();
-                    }
-                } catch (MalformedURLException e) {}
-
-                String databaseCallbackString =
-                        "UI DELEGATE DATABASE CALLBACK: " +
-                        "exceededDatabaseQuotaForSecurityOrigin:{" + protocol +
-                        ", " + host + ", " + port + "} database:" +
-                        databaseIdentifier + "\n";
-                Log.v(LOGTAG, "LOG: "+databaseCallbackString);
-                mDatabaseCallbackStrings.append(databaseCallbackString);
-            }
-            // Give 5MB more quota.
-            callback.updateQuota(currentQuota + 1024 * 1024 * 5);
-        }
-
-        @Override
-        public void onGeolocationPermissionsShowPrompt(String origin,
-                GeolocationPermissions.Callback callback) {
-            throw new RuntimeException(
-                    "The WebCore mock used by DRT should bypass the usual permissions flow.");
-        }
-
-        @Override
-        public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
-            String msg = "CONSOLE MESSAGE: line " + consoleMessage.lineNumber() + ": "
-                    + consoleMessage.message() + "\n";
-            if (mConsoleMessages == null) {
-                mConsoleMessages = new StringBuffer();
-            }
-            mConsoleMessages.append(msg);
-            Log.v(LOGTAG, "LOG: " + msg);
-            // the rationale here is that if there's an error of either type, and the test was
-            // waiting for "notifyDone" signal to finish, then there's no point in waiting
-            // anymore because the JS execution is already terminated at this point and a
-            // "notifyDone" will never come out so it's just wasting time till timeout kicks in
-            if ((msg.contains("Uncaught ReferenceError:") || msg.contains("Uncaught TypeError:"))
-                    && mWaitUntilDone && mStopOnRefError) {
-                Log.w(LOGTAG, "Terminating test case on uncaught ReferenceError or TypeError.");
-                mHandler.postDelayed(new Runnable() {
-                    @Override
-                    public void run() {
-                        notifyDone();
-                    }
-                }, 500);
-            }
-            return true;
-        }
-
-        @Override
-        public boolean onCreateWindow(WebView view, boolean dialog,
-                boolean userGesture, Message resultMsg) {
-            if (!mCanOpenWindows) {
-                // We can't open windows, so just send null back.
-                WebView.WebViewTransport transport =
-                        (WebView.WebViewTransport) resultMsg.obj;
-                transport.setWebView(null);
-                resultMsg.sendToTarget();
-                return true;
-            }
-
-            // We never display the new window, just create the view and
-            // allow it's content to execute and be recorded by the test
-            // runner.
-
-            HashMap<String, Object> jsIfaces = new HashMap<String, Object>();
-            jsIfaces.put("layoutTestController", mCallbackProxy);
-            jsIfaces.put("eventSender", mCallbackProxy);
-            WebView newWindowView = new NewWindowWebView(TestShellActivity.this, jsIfaces);
-            setupWebViewForLayoutTests(newWindowView, mCallbackProxy);
-            WebView.WebViewTransport transport =
-                    (WebView.WebViewTransport) resultMsg.obj;
-            transport.setWebView(newWindowView);
-            resultMsg.sendToTarget();
-            return true;
-        }
-
-        @Override
-        public void onCloseWindow(WebView view) {
-            view.destroy();
-        }
-    };
-
-    private static class NewWindowWebView extends WebView {
-        public NewWindowWebView(Context context, Map<String, Object> jsIfaces) {
-            super(context, null, 0, jsIfaces, false);
-        }
-    }
-
-    private void resetTestStatus() {
-        mWaitUntilDone = false;
-        mDumpDataType = mDefaultDumpDataType;
-        mDumpTopFrameAsText = false;
-        mDumpChildFramesAsText = false;
-        mTimedOut = false;
-        mDumpTitleChanges = false;
-        mRequestedWebKitData = false;
-        mDumpDatabaseCallbacks = false;
-        mCanOpenWindows = false;
-        mEventSender.resetMouse();
-        mEventSender.clearTouchPoints();
-        mEventSender.clearTouchMetaState();
-        mPageFinished = false;
-        mDumpWebKitData = false;
-        setDefaultWebSettings(mWebView);
-        CookieManager.getInstance().removeAllCookie();
-        mWebViewClassic.setUseMockGeolocation();
-    }
-
-    private boolean canMoveToNextTest() {
-        return (mDumpWebKitData && mPageFinished && !mWaitUntilDone) || mTimedOut;
-    }
-
-    private void setupWebViewForLayoutTests(WebView webview, CallbackProxy callbackProxy) {
-        if (webview == null) {
-            return;
-        }
-
-        setDefaultWebSettings(webview);
-
-        webview.setWebChromeClient(mChromeClient);
-        webview.setWebViewClient(mViewClient);
-        // Setting a touch interval of -1 effectively disables the optimisation in WebView
-        // that stops repeated touch events flooding WebCore. The Event Sender only sends a
-        // single event rather than a stream of events (like what would generally happen in
-        // a real use of touch events in a WebView)  and so if the WebView drops the event,
-        // the test will fail as the test expects one callback for every touch it synthesizes.
-        WebViewClassic.fromWebView(webview).setTouchInterval(-1);
-    }
-
-    public void setDefaultWebSettings(WebView webview) {
-        WebSettingsClassic settings = WebViewClassic.fromWebView(webview).getSettings();
-        settings.setAppCacheEnabled(true);
-        settings.setAppCachePath(getApplicationContext().getCacheDir().getPath());
-        settings.setAppCacheMaxSize(Long.MAX_VALUE);
-        settings.setJavaScriptEnabled(true);
-        settings.setJavaScriptCanOpenWindowsAutomatically(true);
-        settings.setSupportMultipleWindows(true);
-        settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
-        settings.setDatabaseEnabled(true);
-        settings.setDatabasePath(getDir("databases",0).getAbsolutePath());
-        settings.setDomStorageEnabled(true);
-        settings.setWorkersEnabled(false);
-        settings.setXSSAuditorEnabled(false);
-        settings.setPageCacheCapacity(0);
-        settings.setProperty("use_minimal_memory", "false");
-        settings.setAllowUniversalAccessFromFileURLs(true);
-        settings.setAllowFileAccessFromFileURLs(true);
-    }
-
-    private WebViewClassic mWebViewClassic;
-    private WebView mWebView;
-    private WebViewEventSender mEventSender;
-    private AsyncHandler mHandler;
-    private TestShellCallback mCallback;
-
-    private CallbackProxy mCallbackProxy;
-
-    private String mTestUrl;
-    private String mResultFile;
-    private int mTimeoutInMillis;
-    private String mUiAutoTestPath;
-    private BufferedReader mTestListReader;
-    private int mTotalTestCount;
-    private int mCurrentTestNumber;
-    private boolean mStopOnRefError;
-
-    // States
-    private boolean mTimedOut;
-    private boolean mRequestedWebKitData;
-    private boolean mFinishedRunning;
-
-    // Layout test controller variables.
-    private DumpDataType mDumpDataType;
-    private DumpDataType mDefaultDumpDataType = DumpDataType.EXT_REPR;
-    private boolean mDumpTopFrameAsText;
-    private boolean mDumpChildFramesAsText;
-    private boolean mWaitUntilDone;
-    private boolean mDumpTitleChanges;
-    private StringBuffer mTitleChanges;
-    private StringBuffer mDialogStrings;
-    private boolean mKeepWebHistory;
-    private Vector mWebHistory;
-    private boolean mDumpDatabaseCallbacks;
-    private StringBuffer mDatabaseCallbackStrings;
-    private StringBuffer mConsoleMessages;
-    private boolean mCanOpenWindows;
-
-    private boolean mPageFinished = false;
-    private boolean mDumpWebKitData = false;
-
-    static final String TIMEOUT_STR = "**Test timeout";
-    static final long DUMP_TIMEOUT_MS = 100000; // 100s timeout for dumping webview content
-
-    static final int MSG_TIMEOUT = 0;
-    static final int MSG_WEBKIT_DATA = 1;
-    static final int MSG_DUMP_TIMEOUT = 2;
-
-    static final String LOGTAG="TestShell";
-
-    static final String TEST_URL = "TestUrl";
-    static final String RESULT_FILE = "ResultFile";
-    static final String TIMEOUT_IN_MILLIS = "TimeoutInMillis";
-    static final String UI_AUTO_TEST = "UiAutoTest";
-    static final String GET_DRAW_TIME = "GetDrawTime";
-    static final String SAVE_IMAGE = "SaveImage";
-    static final String TOTAL_TEST_COUNT = "TestCount";
-    static final String CURRENT_TEST_NUMBER = "TestNumber";
-    static final String STOP_ON_REF_ERROR = "StopOnReferenceError";
-
-    static final int DRAW_RUNS = 5;
-    static final String DRAW_TIME_LOG = Environment.getExternalStorageDirectory() +
-        "/android/page_draw_time.txt";
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellCallback.java b/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellCallback.java
deleted file mode 100644
index 5220d57..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellCallback.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.dumprendertree;
-
-public interface TestShellCallback {
-    public void finished();
-    public void dumpResult(String webViewDump);
-    public void timedOut(String url);
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java b/tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java
deleted file mode 100644
index 17345ae..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/WebViewEventSender.java
+++ /dev/null
@@ -1,413 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.dumprendertree;
-
-import android.os.SystemClock;
-import android.util.*;
-import android.view.KeyEvent;
-import android.view.MotionEvent;
-import android.webkit.WebView;
-
-import java.util.Arrays;
-import java.util.Vector;
-
-public class WebViewEventSender implements EventSender {
-
-    private static final String LOGTAG = "WebViewEventSender";
-	
-    WebViewEventSender(WebView webView) {
-        mWebView = webView;
-        mWebView.getSettings().setBuiltInZoomControls(true);
-        mTouchPoints = new Vector<TouchPoint>();
-    }
-	
-	public void resetMouse() {
-		mouseX = mouseY = 0;
-	}
-
-	public void enableDOMUIEventLogging(int DOMNode) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void fireKeyboardEventsToElement(int DOMNode) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void keyDown(String character, String[] withModifiers) {
-        Log.e("EventSender", "KeyDown: " + character + "("
-                + character.getBytes()[0] + ") Modifiers: "
-                + Arrays.toString(withModifiers));
-        KeyEvent modifier = null;
-        if (withModifiers != null && withModifiers.length > 0) {
-            for (int i = 0; i < withModifiers.length; i++) {
-                int keyCode = modifierMapper(withModifiers[i]);
-                modifier = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
-                mWebView.onKeyDown(modifier.getKeyCode(), modifier);
-            }
-        }
-        int keyCode = keyMapper(character.toLowerCase().toCharArray()[0]);
-        KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
-        mWebView.onKeyDown(event.getKeyCode(), event);
-
-    }
-	
-	public void keyDown(String character) {
-        keyDown(character, null);
-	}
-
-	public void leapForward(int milliseconds) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void mouseClick() {
-		mouseDown();
-		mouseUp();
-	}
-
-    public void mouseDown() {
-        long ts = SystemClock.uptimeMillis();
-        MotionEvent event = MotionEvent.obtain(ts, ts, MotionEvent.ACTION_DOWN, mouseX, mouseY, 0);
-        mWebView.onTouchEvent(event);
-    }
-
-    public void mouseMoveTo(int X, int Y) {
-        mouseX= X;
-        mouseY= Y;
-    }
-
-     public void mouseUp() {
-        long ts = SystemClock.uptimeMillis();
-        MotionEvent event = MotionEvent.obtain(ts, ts, MotionEvent.ACTION_UP, mouseX, mouseY, 0);
-        mWebView.onTouchEvent(event);
-    }
-
-	// Assumes lowercase chars, case needs to be
-	// handled by calling function.
-	static int keyMapper(char c) {
-		// handle numbers
-		if (c >= '0' && c<= '9') {
-			int offset = c - '0';
-			return KeyEvent.KEYCODE_0 + offset;
-		}
-
-		// handle characters
-		if (c >= 'a' && c <= 'z') {
-			int offset = c - 'a';
-			return KeyEvent.KEYCODE_A + offset;
-		}
-
-		// handle all others
-		switch (c) {
-		case '*':
-			return KeyEvent.KEYCODE_STAR;
-		case '#':
-			return KeyEvent.KEYCODE_POUND;
-		case ',':
-			return KeyEvent.KEYCODE_COMMA;
-		case '.':
-			return KeyEvent.KEYCODE_PERIOD;
-		case '\t':
-			return KeyEvent.KEYCODE_TAB;
-		case ' ':
-			return KeyEvent.KEYCODE_SPACE;
-		case '\n':
-			return KeyEvent.KEYCODE_ENTER;
-		case '\b':
-        case 0x7F:
-			return KeyEvent.KEYCODE_DEL;
-		case '~':
-			return KeyEvent.KEYCODE_GRAVE;
-		case '-':
-			return KeyEvent.KEYCODE_MINUS;
-		case '=':
-			return KeyEvent.KEYCODE_EQUALS;
-		case '(':
-			return KeyEvent.KEYCODE_LEFT_BRACKET;
-		case ')':
-			return KeyEvent.KEYCODE_RIGHT_BRACKET;
-		case '\\':
-			return KeyEvent.KEYCODE_BACKSLASH;
-		case ';':
-			return KeyEvent.KEYCODE_SEMICOLON;
-		case '\'':
-			return KeyEvent.KEYCODE_APOSTROPHE;
-		case '/':
-			return KeyEvent.KEYCODE_SLASH;
-		default:
-			break;
-		}
-
-		return c;
-	}
-	
-	static int modifierMapper(String modifier) {
-		if (modifier.equals("ctrlKey")) {
-			return KeyEvent.KEYCODE_ALT_LEFT;
-		} else if (modifier.equals("shiftKey")) {
-			return KeyEvent.KEYCODE_SHIFT_LEFT;
-		} else if (modifier.equals("altKey")) {
-			return KeyEvent.KEYCODE_SYM;
-		} else if (modifier.equals("metaKey")) {
-			return KeyEvent.KEYCODE_UNKNOWN;
-		}
-		return KeyEvent.KEYCODE_UNKNOWN;
-	}
-
-    public void touchStart() {
-        final int numPoints = mTouchPoints.size();
-        if (numPoints == 0) {
-            return;
-        }
-
-        int[] pointerIds = new int[numPoints];
-        MotionEvent.PointerCoords[] pointerCoords = new MotionEvent.PointerCoords[numPoints];
-        long downTime = SystemClock.uptimeMillis();
-
-        for (int i = 0; i < numPoints; ++i) {
-            pointerIds[i] = mTouchPoints.get(i).getId();
-            pointerCoords[i] = new MotionEvent.PointerCoords();
-            pointerCoords[i].x = mTouchPoints.get(i).getX();
-            pointerCoords[i].y = mTouchPoints.get(i).getY();
-            mTouchPoints.get(i).setDownTime(downTime);
-        }
-
-        MotionEvent event = MotionEvent.obtain(downTime, downTime,
-            MotionEvent.ACTION_DOWN, numPoints, pointerIds, pointerCoords,
-            mTouchMetaState, 1.0f, 1.0f, 0, 0, 0, 0);
-
-        mWebView.onTouchEvent(event);
-    }
-
-    public void touchMove() {
-        final int numPoints = mTouchPoints.size();
-        if (numPoints == 0) {
-            return;
-        }
-
-        int[] pointerIds = new int[numPoints];
-        MotionEvent.PointerCoords[] pointerCoords = new MotionEvent.PointerCoords[numPoints];
-        int numMovedPoints = 0;
-        for (int i = 0; i < numPoints; ++i) {
-            TouchPoint tp = mTouchPoints.get(i);
-            if (tp.hasMoved()) {
-                pointerIds[numMovedPoints] = mTouchPoints.get(i).getId();
-                pointerCoords[i] = new MotionEvent.PointerCoords();
-                pointerCoords[numMovedPoints].x = mTouchPoints.get(i).getX();
-                pointerCoords[numMovedPoints].y = mTouchPoints.get(i).getY();
-                ++numMovedPoints;
-                tp.setMoved(false);
-            }
-        }
-
-        if (numMovedPoints == 0) {
-            return;
-        }
-
-        MotionEvent event = MotionEvent.obtain(mTouchPoints.get(0).downTime(),
-                SystemClock.uptimeMillis(), MotionEvent.ACTION_MOVE,
-                numMovedPoints, pointerIds, pointerCoords,
-                mTouchMetaState, 1.0f, 1.0f, 0, 0, 0, 0);
-        mWebView.onTouchEvent(event);
-    }
-
-    public void touchEnd() {
-        final int numPoints = mTouchPoints.size();
-        if (numPoints == 0) {
-            return;
-        }
-
-        int[] pointerIds = new int[numPoints];
-        MotionEvent.PointerCoords[] pointerCoords = new MotionEvent.PointerCoords[numPoints];
-
-        for (int i = 0; i < numPoints; ++i) {
-            pointerIds[i] = mTouchPoints.get(i).getId();
-            pointerCoords[i] = new MotionEvent.PointerCoords();
-            pointerCoords[i].x = mTouchPoints.get(i).getX();
-            pointerCoords[i].y = mTouchPoints.get(i).getY();
-        }
-
-        MotionEvent event = MotionEvent.obtain(mTouchPoints.get(0).downTime(),
-                SystemClock.uptimeMillis(), MotionEvent.ACTION_UP,
-                numPoints, pointerIds, pointerCoords,
-                mTouchMetaState, 1.0f, 1.0f, 0, 0, 0, 0);
-        mWebView.onTouchEvent(event);
-
-        for (int i = numPoints - 1; i >= 0; --i) {  // remove released points.
-            TouchPoint tp = mTouchPoints.get(i);
-            if (tp.isReleased()) {
-              mTouchPoints.remove(i);
-            }
-        }
-    }
-
-    public void touchCancel() {
-        final int numPoints = mTouchPoints.size();
-        if (numPoints == 0) {
-            return;
-        }
-
-        int[] pointerIds = new int[numPoints];
-        MotionEvent.PointerCoords[] pointerCoords = new MotionEvent.PointerCoords[numPoints];
-        long cancelTime = SystemClock.uptimeMillis();
-        int numCanceledPoints = 0;
-
-        for (int i = 0; i < numPoints; ++i) {
-            TouchPoint tp = mTouchPoints.get(i);
-            if (tp.cancelled()) {
-                pointerIds[numCanceledPoints] = mTouchPoints.get(i).getId();
-                pointerCoords[numCanceledPoints] = new MotionEvent.PointerCoords();
-                pointerCoords[numCanceledPoints].x = mTouchPoints.get(i).getX();
-                pointerCoords[numCanceledPoints].y = mTouchPoints.get(i).getY();
-                ++numCanceledPoints;
-            }
-        }
-
-        if (numCanceledPoints == 0) {
-            return;
-        }
-
-        MotionEvent event = MotionEvent.obtain(mTouchPoints.get(0).downTime(),
-            SystemClock.uptimeMillis(), MotionEvent.ACTION_CANCEL,
-            numCanceledPoints, pointerIds, pointerCoords,
-            mTouchMetaState, 1.0f, 1.0f, 0, 0, 0, 0);
-
-        mWebView.onTouchEvent(event);
-    }
-
-    public void cancelTouchPoint(int id) {
-        TouchPoint tp = mTouchPoints.get(id);
-        if (tp == null) {
-            return;
-        }
-
-        tp.cancel();
-    }
-
-    public void addTouchPoint(int x, int y) {
-        final int numPoints = mTouchPoints.size();
-        int id;
-        if (numPoints == 0) {
-          id = 0;
-        } else {
-          id = mTouchPoints.get(numPoints - 1).getId() + 1;
-        }
-
-        mTouchPoints.add(new TouchPoint(id, contentsToWindowX(x), contentsToWindowY(y)));
-    }
-
-    public void updateTouchPoint(int i, int x, int y) {
-        TouchPoint tp = mTouchPoints.get(i);
-        if (tp == null) {
-            return;
-        }
-
-        tp.update(contentsToWindowX(x), contentsToWindowY(y));
-        tp.setMoved(true);
-    }
-
-    public void setTouchModifier(String modifier, boolean enabled) {
-        int mask = 0;
-        if ("alt".equals(modifier.toLowerCase())) {
-            mask = KeyEvent.META_ALT_ON;
-        } else if ("shift".equals(modifier.toLowerCase())) {
-            mask = KeyEvent.META_SHIFT_ON;
-        } else if ("ctrl".equals(modifier.toLowerCase())) {
-            mask = KeyEvent.META_SYM_ON;
-        }
-
-        if (enabled) {
-            mTouchMetaState |= mask;
-        } else {
-            mTouchMetaState &= ~mask;
-        }
-    }
-
-    public void releaseTouchPoint(int id) {
-        TouchPoint tp = mTouchPoints.get(id);
-        if (tp == null) {
-            return;
-        }
-
-        tp.release();
-    }
-
-    public void clearTouchPoints() {
-        mTouchPoints.clear();
-    }
-
-    public void clearTouchMetaState() {
-        mTouchMetaState = 0;
-    }
-
-    private int contentsToWindowX(int x) {
-        return Math.round(x * mWebView.getScale()) - mWebView.getScrollX();
-    }
-
-    private int contentsToWindowY(int y) {
-        return Math.round(y * mWebView.getScale()) - mWebView.getScrollY();
-    }
-
-    private WebView mWebView = null;
-    private int mouseX;
-    private int mouseY;
-
-    private class TouchPoint {
-        private int mId;
-        private int mX;
-        private int mY;
-        private long mDownTime;
-        private boolean mReleased;
-        private boolean mMoved;
-        private boolean mCancelled;
-
-        public TouchPoint(int id, int x, int y) {
-            mId = id;
-            mX = x;
-            mY = y;
-            mReleased = false;
-            mMoved = false;
-            mCancelled = false;
-        }
-
-        public void setDownTime(long downTime) { mDownTime = downTime; }
-        public long downTime() { return mDownTime; }
-        public void cancel() { mCancelled = true; }
-
-        public boolean cancelled() { return mCancelled; }
-
-        public void release() { mReleased = true; }
-        public boolean isReleased() { return mReleased; }
-
-        public void setMoved(boolean moved) { mMoved = moved; }
-        public boolean hasMoved() { return mMoved; }
-
-        public int getId() { return mId; }
-        public int getX() { return mX; }
-        public int getY() { return mY; }
-
-        public void update(int x, int y) {
-            mX = x;
-            mY = y;
-        }
-    }
-
-    private Vector<TouchPoint> mTouchPoints;
-    private int mTouchMetaState;
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/forwarder/AdbUtils.java b/tests/DumpRenderTree/src/com/android/dumprendertree/forwarder/AdbUtils.java
deleted file mode 100644
index c2ecf3a..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/forwarder/AdbUtils.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.dumprendertree.forwarder;
-
-import android.util.Log;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.Socket;
-
-public class AdbUtils {
-
-    private static final String ADB_OK = "OKAY";
-    private static final int ADB_PORT = 5037;
-    private static final String ADB_HOST = "127.0.0.1";
-    private static final int ADB_RESPONSE_SIZE = 4;
-
-    private static final String LOGTAG = "AdbUtils";
-
-    /**
-     *
-     * Convert integer format IP into xxx.xxx.xxx.xxx format
-     *
-     * @param host IP address in integer format
-     * @return human readable format
-     */
-    public static String convert(int host) {
-        return ((host >> 24) & 0xFF) + "."
-        + ((host >> 16) & 0xFF) + "."
-        + ((host >> 8) & 0xFF) + "."
-        + (host & 0xFF);
-    }
-
-    /**
-     *
-     * Resolve DNS name into IP address
-     *
-     * @param host DNS name
-     * @return IP address in integer format
-     * @throws IOException
-     */
-    public static int resolve(String host)  throws IOException {
-        Socket localSocket = new Socket(ADB_HOST, ADB_PORT);
-        DataInputStream dis = new DataInputStream(localSocket.getInputStream());
-        OutputStream os = localSocket.getOutputStream();
-        int count_read = 0;
-
-        if (localSocket == null || dis == null || os == null)
-            return -1;
-        String cmd = "dns:" + host;
-
-        if(!sendAdbCmd(dis, os, cmd))
-            return -1;
-
-        count_read = dis.readInt();
-        localSocket.close();
-        return count_read;
-    }
-
-    /**
-     *
-     * Send an ADB command using existing socket connection
-     *
-     * the streams provided must be from a socket connected to adbd already
-     *
-     * @param is input stream of the socket connection
-     * @param os output stream of the socket
-     * @param cmd the adb command to send
-     * @return if adb gave a success response
-     * @throws IOException
-     */
-    public static boolean sendAdbCmd(InputStream is, OutputStream os,
-            String cmd) throws IOException {
-        byte[] buf = new byte[ADB_RESPONSE_SIZE];
-
-        cmd = String.format("%04X", cmd.length()) + cmd;
-        os.write(cmd.getBytes());
-        int read = is.read(buf);
-        if(read != ADB_RESPONSE_SIZE || !ADB_OK.equals(new String(buf))) {
-            Log.w(LOGTAG, "adb cmd faild.");
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     *
-     * Get a tcp socket connection to specified IP address and port proxied by adb
-     *
-     * The proxying is transparent, e.g. if a socket is returned, then it can be written to and
-     * read from as if it is directly connected to the target
-     *
-     * @param remoteAddress IP address of the host to connect to
-     * @param remotePort port of the host to connect to
-     * @return a valid Socket instance if successful, null otherwise
-     */
-    public static Socket getForwardedSocket(int remoteAddress, int remotePort) {
-        try {
-            Socket socket = new Socket(ADB_HOST, ADB_PORT);
-            String cmd = "tcp:" + remotePort + ":" + convert(remoteAddress);
-            if(!sendAdbCmd(socket.getInputStream(), socket.getOutputStream(), cmd)) {
-                socket.close();
-                return null;
-            }
-            return socket;
-        } catch (IOException ioe) {
-            Log.w(LOGTAG, "error creating adb socket", ioe);
-            return null;
-        }
-    }
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/forwarder/ForwardServer.java b/tests/DumpRenderTree/src/com/android/dumprendertree/forwarder/ForwardServer.java
deleted file mode 100644
index 14f8fbe..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/forwarder/ForwardServer.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.dumprendertree.forwarder;
-
-import android.util.Log;
-
-import java.io.IOException;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- *
- * A port forwarding server. Listens at specified local port and forward the tcp communications to
- * external host/port via adb networking proxy.
- *
- */
-public class ForwardServer {
-
-    private static final String LOGTAG = "ForwardServer";
-
-    private int remotePort;
-    private int remoteAddress;
-    private int localPort;
-    private ServerSocket serverSocket;
-    private boolean started;
-
-    private Set<Forwarder> forwarders;
-
-    public ForwardServer(int localPort, int remoteAddress, int remotePort) {
-        this.localPort = localPort;
-        this.remoteAddress = remoteAddress;
-        this.remotePort = remotePort;
-        started = false;
-        forwarders = new HashSet<Forwarder>();
-    }
-
-    public synchronized void start() throws IOException {
-        if(!started) {
-            serverSocket = new ServerSocket(localPort);
-            Thread serverThread = new Thread(new ServerRunner(serverSocket));
-            serverThread.setName(LOGTAG);
-            serverThread.start();
-            started = true;
-        }
-    }
-
-    public synchronized void stop() {
-        if(started) {
-            synchronized (forwarders) {
-                for(Forwarder forwarder : forwarders)
-                    forwarder.stop();
-                forwarders.clear();
-            }
-            try {
-                serverSocket.close();
-            } catch (IOException ioe) {
-                Log.v(LOGTAG, "exception while closing", ioe);
-            } finally {
-                started = false;
-            }
-        }
-    }
-
-    public synchronized boolean isRunning() {
-        return started;
-    }
-
-    private class ServerRunner implements Runnable {
-
-        private ServerSocket socket;
-
-        public ServerRunner(ServerSocket socket) {
-            this.socket = socket;
-        }
-
-        public void run() {
-            try {
-                while (true) {
-                    Socket localSocket = socket.accept();
-                    Socket remoteSocket = AdbUtils.getForwardedSocket(remoteAddress, remotePort);
-                    if(remoteSocket == null) {
-                        try {
-                            localSocket.close();
-                        } catch (IOException ioe) {
-                            Log.w(LOGTAG, "error while closing socket", ioe);
-                        } finally {
-                            Log.w(LOGTAG, "failed to start forwarding from " + localSocket);
-                        }
-                    } else {
-                        Forwarder forwarder = new Forwarder(localSocket, remoteSocket,
-                                ForwardServer.this);
-                        forwarder.start();
-                    }
-                }
-            } catch (IOException ioe) {
-                return;
-            }
-        }
-    }
-
-    public void register(Forwarder forwarder) {
-        synchronized (forwarders) {
-            if(!forwarders.contains(forwarder)) {
-                forwarders.add(forwarder);
-            }
-        }
-    }
-
-    public void unregister(Forwarder recyclable) {
-        synchronized (forwarders) {
-            if(forwarders.contains(recyclable)) {
-                recyclable.stop();
-                forwarders.remove(recyclable);
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/forwarder/ForwardService.java b/tests/DumpRenderTree/src/com/android/dumprendertree/forwarder/ForwardService.java
deleted file mode 100644
index 25dd04fd..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/forwarder/ForwardService.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.dumprendertree.forwarder;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-
-import android.os.Environment;
-import android.util.Log;
-
-public class ForwardService {
-
-    private ForwardServer fs8000, fs8080, fs8443;
-
-    private static ForwardService inst;
-
-    private static final String LOGTAG = "ForwardService";
-
-    private static final String DEFAULT_TEST_HOST = "android-browser-test.mtv.corp.google.com";
-
-    private static final String FORWARD_HOST_CONF =
-        Environment.getExternalStorageDirectory() + "/drt_forward_host.txt";
-
-    private ForwardService() {
-        int addr = getForwardHostAddr();
-        if (addr != -1) {
-            fs8000 = new ForwardServer(8000, addr, 8000);
-            fs8080 = new ForwardServer(8080, addr, 8080);
-            fs8443 = new ForwardServer(8443, addr, 8443);
-        }
-    }
-
-    public static ForwardService getForwardService() {
-        if (inst == null) {
-            inst = new ForwardService();
-        }
-        return inst;
-    }
-
-    public void startForwardService() {
-        try {
-            if (fs8000 != null)
-                fs8000.start();
-            if (fs8080 != null)
-                fs8080.start();
-            if (fs8443 != null)
-                fs8443.start();
-        } catch (IOException ioe) {
-            Log.w(LOGTAG, "failed to start forwarder. http tests will fail.", ioe);
-            return;
-        }
-    }
-
-    public void stopForwardService() {
-        if (fs8000 != null) {
-            fs8000.stop();
-            fs8000 = null;
-        }
-        if (fs8080 != null) {
-            fs8080.stop();
-            fs8080 = null;
-        }
-        if (fs8443 != null) {
-            fs8443.stop();
-            fs8443 = null;
-        }
-        Log.v(LOGTAG, "forwarders stopped.");
-    }
-
-    private static int getForwardHostAddr() {
-        int addr = -1;
-        String host = null;
-        File forwardHostConf = new File(FORWARD_HOST_CONF);
-        if (forwardHostConf.isFile()) {
-            BufferedReader hostReader = null;
-            try {
-                hostReader = new BufferedReader(new FileReader(forwardHostConf));
-                host = hostReader.readLine();
-                Log.v(LOGTAG, "read forward host from file: " + host);
-            } catch (IOException ioe) {
-                Log.v(LOGTAG, "cannot read forward host from file", ioe);
-            } finally {
-                if (hostReader != null) {
-                    try {
-                        hostReader.close();
-                    } catch (IOException ioe) {
-                        // burn!!!
-                    }
-                }
-            }
-        }
-        if (host == null || host.length() == 0)
-            host = DEFAULT_TEST_HOST;
-        try {
-            addr = AdbUtils.resolve(host);
-        } catch (IOException ioe) {
-            Log.e(LOGTAG, "failed to resolve server address", ioe);
-        }
-        return addr;
-    }
-}
diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/forwarder/Forwarder.java b/tests/DumpRenderTree/src/com/android/dumprendertree/forwarder/Forwarder.java
deleted file mode 100644
index a971e7b..0000000
--- a/tests/DumpRenderTree/src/com/android/dumprendertree/forwarder/Forwarder.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.dumprendertree.forwarder;
-
-import android.util.Log;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.Socket;
-
-/**
- *
- * Worker class for {@link ForwardServer}. A Forwarder will be created once the ForwardServer
- * accepts an incoming connection, and it will then forward the incoming/outgoing streams to a
- * connection already proxied by adb networking (see also {@link AdbUtils}).
- *
- */
-public class Forwarder {
-
-    private ForwardServer server;
-    private Socket from, to;
-
-    private static final String LOGTAG = "Forwarder";
-    private static final int BUFFER_SIZE = 16384;
-
-    public Forwarder (Socket from, Socket to, ForwardServer server) {
-        this.server = server;
-        this.from = from;
-        this.to = to;
-        server.register(this);
-    }
-
-    public void start() {
-        Thread outgoing = new Thread(new SocketPipe(from, to));
-        Thread incoming = new Thread(new SocketPipe(to, from));
-        outgoing.setName(LOGTAG);
-        incoming.setName(LOGTAG);
-        outgoing.start();
-        incoming.start();
-    }
-
-    public void stop() {
-        shutdown(from);
-        shutdown(to);
-    }
-
-    private void shutdown(Socket socket) {
-        try {
-            socket.shutdownInput();
-        } catch (IOException e) {
-            Log.v(LOGTAG, "Socket#shutdownInput", e);
-        }
-        try {
-            socket.shutdownOutput();
-        } catch (IOException e) {
-            Log.v(LOGTAG, "Socket#shutdownOutput", e);
-        }
-        try {
-            socket.close();
-        } catch (IOException e) {
-            Log.v(LOGTAG, "Socket#close", e);
-        }
-    }
-
-    private class SocketPipe implements Runnable {
-
-        private Socket in, out;
-
-        public SocketPipe(Socket in, Socket out) {
-            this.in = in;
-            this.out = out;
-        }
-
-        public void run() {
-            try {
-                int length;
-                InputStream is = in.getInputStream();
-                OutputStream os = out.getOutputStream();
-                byte[] buffer = new byte[BUFFER_SIZE];
-                while ((length = is.read(buffer)) > 0) {
-                    os.write(buffer, 0, length);
-                }
-            } catch (IOException ioe) {
-            } finally {
-                server.unregister(Forwarder.this);
-            }
-        }
-
-        @Override
-        public String toString() {
-            return "SocketPipe{" + in + "=>" + out  + "}";
-        }
-    }
-}
diff --git a/tests/DumpRenderTree2/Android.mk b/tests/DumpRenderTree2/Android.mk
deleted file mode 100644
index 81fc633..0000000
--- a/tests/DumpRenderTree2/Android.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# Copyright (C) 2010 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_SRC_FILES := $(call all-subdir-java-files)
-
-LOCAL_JAVA_LIBRARIES := android.test.runner
-
-LOCAL_STATIC_JAVA_LIBRARIES := diff_match_patch
-
-LOCAL_PACKAGE_NAME := DumpRenderTree2
-
-include $(BUILD_PACKAGE)
\ No newline at end of file
diff --git a/tests/DumpRenderTree2/AndroidManifest.xml b/tests/DumpRenderTree2/AndroidManifest.xml
deleted file mode 100644
index ea6571e..0000000
--- a/tests/DumpRenderTree2/AndroidManifest.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2010 The Android Open Source Project
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.dumprendertree2">
-    <application>
-        <uses-library android:name="android.test.runner" />
-
-        <activity android:name=".ui.DirListActivity"
-                  android:label="Dump Render Tree 2"
-                  android:configChanges="orientation">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.TEST" />
-            </intent-filter>
-        </activity>
-
-        <!-- android:launchMode="singleTask" is there so we only have a one instance
-             of this activity. However, it doesn't seem to work exactly like described in the
-             documentation, because the behaviour of the application suggest
-             there is only a single task for all 3 activities. We don't understand
-             how exactly it all works, but at the moment it works just fine.
-             It can lead to some weird behaviour in the future. -->
-        <activity android:name=".TestsListActivity"
-                  android:label="Tests' list activity"
-                  android:launchMode="singleTask"
-                  android:configChanges="orientation">
-        </activity>
-
-        <activity android:name=".LayoutTestsExecutor"
-                  android:theme="@style/WhiteBackground"
-                  android:label="Layout tests' executor"
-                  android:process=":executor">
-        </activity>
-
-        <service android:name="ManagerService">
-        </service>
-    </application>
-
-    <instrumentation android:name="com.android.dumprendertree2.scriptsupport.ScriptTestRunner"
-                     android:targetPackage="com.android.dumprendertree2"
-                     android:label="Layout tests script runner" />
-
-    <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.WRITE_SDCARD" />
-    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-    <uses-permission android:name="android.permission.WAKE_LOCK" />
-</manifest>
diff --git a/tests/DumpRenderTree2/assets/run_apache2.py b/tests/DumpRenderTree2/assets/run_apache2.py
deleted file mode 100755
index 3806599..0000000
--- a/tests/DumpRenderTree2/assets/run_apache2.py
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/usr/bin/python
-#
-# Copyright (C) 2010 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-"""Start, stop, or restart apache2 server.
-
-  Apache2 must be installed with mod_php!
-
-  Usage:
-    run_apache2.py start|stop|restart
-"""
-
-import sys
-import os
-import subprocess
-import logging
-import optparse
-import time
-
-def main(run_cmd, options):
-  # Setup logging class
-  logging.basicConfig(level=logging.INFO, format='%(message)s')
-
-  if not run_cmd in ("start", "stop", "restart"):
-    logging.info("illegal argument: " + run_cmd)
-    logging.info("Usage: python run_apache2.py start|stop|restart")
-    return False
-
-  # Create /tmp/WebKit if it doesn't exist. This is needed for various files used by apache2
-  tmp_WebKit = os.path.join("/tmp", "WebKit")
-  if not os.path.exists(tmp_WebKit):
-    os.mkdir(tmp_WebKit)
-
-  # Get the path to android tree root based on the script location.
-  # Basically we go 5 levels up
-  parent = os.pardir
-  script_location = os.path.abspath(os.path.dirname(sys.argv[0]))
-  android_tree_root = os.path.join(script_location, parent, parent, parent, parent, parent)
-  android_tree_root = os.path.normpath(android_tree_root)
-
-  # If any of these is relative, then it's relative to ServerRoot (in our case android_tree_root)
-  webkit_path = os.path.join("external", "webkit")
-  if (options.tests_root_directory != None):
-    # if options.tests_root_directory is absolute, os.getcwd() is discarded!
-    layout_tests_path = os.path.normpath(os.path.join(os.getcwd(), options.tests_root_directory))
-  else:
-    layout_tests_path = os.path.join(webkit_path, "LayoutTests")
-  http_conf_path = os.path.join(layout_tests_path, "http", "conf")
-
-  # Prepare the command to set ${APACHE_RUN_USER} and ${APACHE_RUN_GROUP}
-  envvars_path = os.path.join("/etc", "apache2", "envvars")
-  export_envvars_cmd = "source " + envvars_path
-
-  error_log_path = os.path.join(tmp_WebKit, "apache2-error.log")
-  custom_log_path = os.path.join(tmp_WebKit, "apache2-access.log")
-
-  # Prepare the command to (re)start/stop the server with specified settings
-  apache2_restart_template = "apache2 -k %s"
-  directives  = " -c \"ServerRoot " + android_tree_root + "\""
-
-  # The default config in apache2-debian-httpd.conf listens on ports 8080 and
-  # 8443. We also need to listen on port 8000 for HTTP tests.
-  directives += " -c \"Listen 8000\""
-
-  # We use http/tests as the document root as the HTTP tests use hardcoded
-  # resources at the server root. We then use aliases to make available the
-  # complete set of tests and the required scripts.
-  directives += " -c \"DocumentRoot " + os.path.join(layout_tests_path, "http", "tests/") + "\""
-  directives += " -c \"Alias /LayoutTests " + layout_tests_path + "\""
-  directives += " -c \"Alias /Tools/DumpRenderTree/android " + \
-    os.path.join(webkit_path, "Tools", "DumpRenderTree", "android") + "\""
-  directives += " -c \"Alias /ThirdPartyProject.prop " + \
-    os.path.join(webkit_path, "ThirdPartyProject.prop") + "\""
-
-  # This directive is commented out in apache2-debian-httpd.conf for some reason
-  # However, it is useful to browse through tests in the browser, so it's added here.
-  # One thing to note is that because of problems with mod_dir and port numbers, mod_dir
-  # is turned off. That means that there _must_ be a trailing slash at the end of URL
-  # for auto indexes to work correctly.
-  directives += " -c \"LoadModule autoindex_module /usr/lib/apache2/modules/mod_autoindex.so\""
-
-  directives += " -c \"ErrorLog " + error_log_path +"\""
-  directives += " -c \"CustomLog " + custom_log_path + " combined\""
-  directives += " -c \"SSLCertificateFile " + os.path.join(http_conf_path, "webkit-httpd.pem") + \
-    "\""
-  directives += " -c \"User ${APACHE_RUN_USER}\""
-  directives += " -c \"Group ${APACHE_RUN_GROUP}\""
-  directives += " -C \"TypesConfig " + \
-    os.path.join(android_tree_root, http_conf_path, "mime.types") + "\""
-  conf_file_cmd = " -f " + \
-    os.path.join(android_tree_root, http_conf_path, "apache2-debian-httpd.conf")
-
-  # Try to execute the commands
-  logging.info("Will " + run_cmd + " apache2 server.")
-
-  # It is worth noting here that if the configuration file with which we restart the server points
-  # to a different PidFile it will not work and will result in a second apache2 instance.
-  if (run_cmd == 'restart'):
-    logging.info("First will stop...")
-    if execute_cmd(envvars_path, error_log_path,
-                   export_envvars_cmd + " && " + (apache2_restart_template % ('stop')) + directives + conf_file_cmd) == False:
-      logging.info("Failed to stop Apache2")
-      return False
-    logging.info("Stopped. Will start now...")
-    # We need to sleep breifly to avoid errors with apache being stopped and started too quickly
-    time.sleep(0.5)
-
-  if execute_cmd(envvars_path, error_log_path,
-                 export_envvars_cmd + " && " +
-                 (apache2_restart_template % (run_cmd)) + directives +
-                 conf_file_cmd) == False:
-    logging.info("Failed to start Apache2")
-    return False
-
-  logging.info("Successfully started")
-  return True
-
-def execute_cmd(envvars_path, error_log_path, cmd):
-  p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-  (out, err) = p.communicate()
-
-  # Output the stdout from the command to console
-  logging.info(out)
-
-  # Report any errors
-  if p.returncode != 0:
-    logging.info("!! ERRORS:")
-
-    if err.find(envvars_path) != -1:
-      logging.info(err)
-    elif err.find('command not found') != -1:
-      logging.info("apache2 is probably not installed")
-    else:
-      logging.info(err)
-      logging.info("Try looking in " + error_log_path + " for details")
-    return False
-
-  return True
-
-if __name__ == "__main__":
-  option_parser = optparse.OptionParser(usage="Usage: %prog [options] start|stop|restart")
-  option_parser.add_option("", "--tests-root-directory",
-                           help="The directory from which to take the tests, default is external/webkit/LayoutTests in this checkout of the Android tree")
-  options, args = option_parser.parse_args();
-
-  if len(args) < 1:
-    run_cmd = ""
-  else:
-    run_cmd = args[0]
-
-  main(run_cmd, options)
diff --git a/tests/DumpRenderTree2/assets/run_layout_tests.py b/tests/DumpRenderTree2/assets/run_layout_tests.py
deleted file mode 100755
index 161416a..0000000
--- a/tests/DumpRenderTree2/assets/run_layout_tests.py
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/usr/bin/python
-
-"""Run layout tests on the device.
-
-  It runs the specified tests on the device, downloads the summaries to the temporary directory
-  and optionally shows the detailed results the host's default browser.
-
-  Usage:
-    run_layout_tests.py --show-results-in-browser test-relative-path
-"""
-
-import logging
-import optparse
-import os
-import re
-import sys
-import subprocess
-import tempfile
-import webbrowser
-
-import run_apache2
-
-#TODO: These should not be hardcoded
-RESULTS_ABSOLUTE_PATH = "/sdcard/layout-test-results/"
-DETAILS_HTML = "details.html"
-SUMMARY_TXT = "summary.txt"
-
-def main(path, options):
-  tmpdir = tempfile.gettempdir()
-
-  # Restart the server
-  if run_apache2.main("restart", options) == False:
-    return
-
-  # Run the tests in path
-  adb_cmd = "adb"
-  if options.serial:
-    adb_cmd += " -s " + options.serial
-  cmd = adb_cmd + " shell am instrument "
-  cmd += "-e class com.android.dumprendertree2.scriptsupport.Starter#startLayoutTests "
-  cmd += "-e path \"" + path + "\" "
-  cmd += "-w com.android.dumprendertree2/com.android.dumprendertree2.scriptsupport.ScriptTestRunner"
-
-  logging.info("Running the tests...")
-  logging.debug("Command = %s" % cmd)
-  (stdoutdata, stderrdata) = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
-  if stderrdata != "":
-    logging.info("Failed to start tests:\n%s", stderrdata)
-    return
-  if re.search("^INSTRUMENTATION_STATUS_CODE: -1", stdoutdata, re.MULTILINE) != None:
-    logging.info("Failed to run the tests. Is DumpRenderTree2 installed on the device?")
-    return
-  if re.search("^OK \([0-9]+ tests?\)", stdoutdata, re.MULTILINE) == None:
-    logging.info("DumpRenderTree2 failed to run correctly:\n%s", stdoutdata)
-    return
-
-  logging.info("Downloading the summaries...")
-
-  # Download the txt summary to tmp folder
-  summary_txt_tmp_path = os.path.join(tmpdir, SUMMARY_TXT)
-  cmd = "rm -f " + summary_txt_tmp_path + ";"
-  cmd += adb_cmd + " pull " + RESULTS_ABSOLUTE_PATH + SUMMARY_TXT + " " + summary_txt_tmp_path
-  subprocess.Popen(cmd, shell=True).wait()
-
-  # Download the html summary to tmp folder
-  details_html_tmp_path = os.path.join(tmpdir, DETAILS_HTML)
-  cmd = "rm -f " + details_html_tmp_path + ";"
-  cmd += adb_cmd + " pull " + RESULTS_ABSOLUTE_PATH + DETAILS_HTML + " " + details_html_tmp_path
-  subprocess.Popen(cmd, shell=True).wait()
-
-  # Print summary to console
-  logging.info("All done.\n")
-  cmd = "cat " + summary_txt_tmp_path
-  os.system(cmd)
-  logging.info("")
-
-  # Open the browser with summary
-  if options.show_results_in_browser != "false":
-    webbrowser.open(details_html_tmp_path)
-
-if __name__ == "__main__":
-  option_parser = optparse.OptionParser(usage="Usage: %prog [options] test-relative-path")
-  option_parser.add_option("", "--show-results-in-browser", default="true",
-                           help="Show the results the host's default web browser, default=true")
-  option_parser.add_option("", "--tests-root-directory",
-                           help="The directory from which to take the tests, default is external/webkit/LayoutTests in this checkout of the Android tree")
-  option_parser.add_option("-s", "--serial", default=None, help="Specify the serial number of device to run test on")
-  options, args = option_parser.parse_args();
-
-  logging.basicConfig(level=logging.INFO, format='%(message)s')
-
-  if len(args) > 1:
-    logging.fatal("Usage: run_layout_tests.py [options] test-relative-path")
-  else:
-    if len(args) < 1:
-      path = "";
-    else:
-      path = args[0]
-    main(path, options);
diff --git a/tests/DumpRenderTree2/res/drawable/folder.png b/tests/DumpRenderTree2/res/drawable/folder.png
deleted file mode 100644
index 5b3fcec..0000000
--- a/tests/DumpRenderTree2/res/drawable/folder.png
+++ /dev/null
Binary files differ
diff --git a/tests/DumpRenderTree2/res/drawable/runtest.png b/tests/DumpRenderTree2/res/drawable/runtest.png
deleted file mode 100644
index 910c654..0000000
--- a/tests/DumpRenderTree2/res/drawable/runtest.png
+++ /dev/null
Binary files differ
diff --git a/tests/DumpRenderTree2/res/layout/dirlist_row.xml b/tests/DumpRenderTree2/res/layout/dirlist_row.xml
deleted file mode 100644
index e5578a6..0000000
--- a/tests/DumpRenderTree2/res/layout/dirlist_row.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2010 The Android Open Source Project
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:orientation="horizontal"
-    android:gravity="center_vertical"
-    android:layout_width="fill_parent"
-    android:layout_height="wrap_content">
-
-    <ImageView
-        android:id="@+id/icon"
-        android:layout_width="80px"
-        android:adjustViewBounds="true"
-        android:paddingLeft="15px"
-        android:paddingRight="15px"
-        android:paddingTop="15px"
-        android:paddingBottom="15px"
-        android:layout_height="wrap_content"
-    />
-
-    <TextView
-        android:id="@+id/label"
-        android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
-        android:minHeight="60px"
-        android:gravity="center_vertical"
-        android:textSize="14sp"
-    />
-
-</LinearLayout>
\ No newline at end of file
diff --git a/tests/DumpRenderTree2/res/menu/gui_menu.xml b/tests/DumpRenderTree2/res/menu/gui_menu.xml
deleted file mode 100644
index a5b2b65..0000000
--- a/tests/DumpRenderTree2/res/menu/gui_menu.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2010 The Android Open Source Project
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:id="@+id/run_all"
-          android:title="@string/run_all_tests" />
-</menu>
\ No newline at end of file
diff --git a/tests/DumpRenderTree2/res/values/strings.xml b/tests/DumpRenderTree2/res/values/strings.xml
deleted file mode 100644
index 0496404..0000000
--- a/tests/DumpRenderTree2/res/values/strings.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2010 The Android Open Source Project
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-<resources>
-    <string name="dialog_run_abort_dir_title_prefix">Directory:</string>
-    <string name="dialog_run_abort_dir_msg">This will run all the tests in this directory and all
-            the subdirectories. It may take a few hours!</string>
-    <string name="dialog_run_abort_dir_ok_button">Run tests!</string>
-    <string name="dialog_run_abort_dir_abort_button">Abort</string>
-
-    <string name="dialog_progress_title">Loading items.</string>
-    <string name="dialog_progress_msg">Please wait...</string>
-
-    <string name="runner_preloading_title">Preloading tests...</string>
-
-    <string name="run_all_tests">Run all tests in the current directory</string>
-</resources>
\ No newline at end of file
diff --git a/tests/DumpRenderTree2/res/values/style.xml b/tests/DumpRenderTree2/res/values/style.xml
deleted file mode 100644
index 35f3419..0000000
--- a/tests/DumpRenderTree2/res/values/style.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2010 The Android Open Source Project
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-<resources>
-    <style name="WhiteBackground">
-        <item name="android:background">@android:color/white</item>
-    </style>
-</resources>
\ No newline at end of file
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/AbstractResult.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/AbstractResult.java
deleted file mode 100644
index 614b03c..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/AbstractResult.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import android.os.Bundle;
-import android.os.Message;
-import android.util.Log;
-import android.webkit.WebView;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-
-/**
- * A class that represent a result of the test. It is responsible for returning the result's
- * raw data and generating its own diff in HTML format.
- */
-public abstract class AbstractResult implements Comparable<AbstractResult>, Serializable {
-
-    private static final String LOG_TAG = "AbstractResult";
-
-    public enum TestType {
-        TEXT {
-            @Override
-            public AbstractResult createResult(Bundle bundle) {
-                return new TextResult(bundle);
-            }
-        },
-        RENDER_TREE {
-            @Override
-            public AbstractResult createResult(Bundle bundle) {
-                /** TODO: RenderTree tests are not yet supported */
-                return null;
-            }
-        };
-
-        public abstract AbstractResult createResult(Bundle bundle);
-    }
-
-    /**
-     * A code representing the result of comparing actual and expected results.
-     */
-    public enum ResultCode implements Serializable {
-        RESULTS_MATCH("Results match"),
-        RESULTS_DIFFER("Results differ"),
-        NO_EXPECTED_RESULT("No expected result"),
-        NO_ACTUAL_RESULT("No actual result");
-
-        private String mTitle;
-
-        private ResultCode(String title) {
-            mTitle = title;
-        }
-
-        @Override
-        public String toString() {
-            return mTitle;
-        }
-    }
-
-    String mAdditionalTextOutputString;
-
-    public int compareTo(AbstractResult another) {
-        return getRelativePath().compareTo(another.getRelativePath());
-    }
-
-    public void setAdditionalTextOutputString(String additionalTextOutputString) {
-        mAdditionalTextOutputString = additionalTextOutputString;
-    }
-
-    public String getAdditionalTextOutputString() {
-        return mAdditionalTextOutputString;
-    }
-
-    public byte[] getBytes() {
-        ByteArrayOutputStream baos = null;
-        ObjectOutputStream oos = null;
-        try {
-            try {
-                baos = new ByteArrayOutputStream();
-                oos = new ObjectOutputStream(baos);
-                oos.writeObject(this);
-            } finally {
-                if (baos != null) {
-                    baos.close();
-                }
-                if (oos != null) {
-                    oos.close();
-                }
-            }
-        } catch (IOException e) {
-            Log.e(LOG_TAG, "Unable to serialize result: " + getRelativePath(), e);
-        }
-
-        return baos == null ? null : baos.toByteArray();
-    }
-
-    public static AbstractResult create(byte[] bytes) {
-        ByteArrayInputStream bais = null;
-        ObjectInputStream ois = null;
-        AbstractResult result = null;
-        try {
-            try {
-                bais = new ByteArrayInputStream(bytes);
-                ois = new ObjectInputStream(bais);
-                result = (AbstractResult)ois.readObject();
-            } finally {
-                if (bais != null) {
-                    bais.close();
-                }
-                if (ois != null) {
-                    ois.close();
-                }
-            }
-        } catch (IOException e) {
-            Log.e(LOG_TAG, "Unable to deserialize result!", e);
-        } catch (ClassNotFoundException e) {
-            Log.e(LOG_TAG, "Unable to deserialize result!", e);
-        }
-        return result;
-    }
-
-    public void clearResults() {
-        mAdditionalTextOutputString = null;
-    }
-
-    /**
-     * Makes the result object obtain the results of the test from the webview
-     * and store them in the format that suits itself bests. This method is asynchronous.
-     * The message passed as a parameter is a message that should be sent to its target
-     * when the result finishes obtaining the result.
-     *
-     * @param webview
-     * @param resultObtainedMsg
-     */
-    public abstract void obtainActualResults(WebView webview, Message resultObtainedMsg);
-
-    public abstract void setExpectedImageResult(byte[] expectedResult);
-
-    public abstract void setExpectedImageResultPath(String relativePath);
-
-    public abstract String getExpectedImageResultPath();
-
-    public abstract void setExpectedTextResult(String expectedResult);
-
-    public abstract void setExpectedTextResultPath(String relativePath);
-
-    public abstract String getExpectedTextResultPath();
-
-    /**
-     * Returns result's image data that can be written to the disk. It can be null
-     * if there is an error of some sort or for example the test times out.
-     *
-     * <p> Some tests will not provide data (like text tests)
-     *
-     * @return
-     *      results image data
-     */
-    public abstract byte[] getActualImageResult();
-
-    /**
-     * Returns result's text data. It can be null
-     * if there is an error of some sort or for example the test times out.
-     *
-     * @return
-     *      results text data
-     */
-    public abstract String getActualTextResult();
-
-    /**
-     * Returns the status code representing the result of comparing actual and expected results.
-     *
-     * @return
-     *      the status code from comparing actual and expected results
-     */
-    public abstract ResultCode getResultCode();
-
-    /**
-     * Returns whether this test crashed.
-     *
-     * @return
-     *      whether this test crashed
-     */
-    public abstract boolean didCrash();
-
-    /**
-     * Returns whether this test timed out.
-     *
-     * @return
-     *      whether this test timed out
-     */
-    public abstract boolean didTimeOut();
-
-    /**
-     * Sets that this test timed out.
-     */
-    public abstract void setDidTimeOut();
-
-    /**
-     * Returns whether the test passed.
-     *
-     * @return
-     *      whether the test passed
-     */
-    public boolean didPass() {
-        // Tests that crash can't have timed out or have an actual result.
-        assert !(didCrash() && didTimeOut());
-        assert !(didCrash() && getResultCode() != ResultCode.NO_ACTUAL_RESULT);
-        return !didCrash() && !didTimeOut() && getResultCode() == ResultCode.RESULTS_MATCH;
-    }
-
-    /**
-     * Return the type of the result data.
-     *
-     * @return
-     *      the type of the result data.
-     */
-    public abstract TestType getType();
-
-    public abstract String getRelativePath();
-
-    /**
-     * Returns a piece of HTML code that presents a visual diff between a result and
-     * the expected result.
-     *
-     * @return
-     *      a piece of HTML code with a visual diff between the result and the expected result
-     */
-    public abstract String getDiffAsHtml();
-
-    public abstract Bundle getBundle();
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/AdditionalTextOutput.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/AdditionalTextOutput.java
deleted file mode 100644
index bb9a916..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/AdditionalTextOutput.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import android.util.Log;
-import android.webkit.ConsoleMessage;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-/**
- * A class that stores consoles messages, database callbacks, alert messages, etc.
- */
-public class AdditionalTextOutput {
-    private static final String LOG_TAG = "AdditionalTextOutput";
-
-    /**
-     * Ordering of enums is important as it determines ordering of the toString method!
-     * StringBuilders will be printed in the order the corresponding types appear here.
-     */
-    private enum OutputType {
-        JS_DIALOG,
-        EXCEEDED_DB_QUOTA_MESSAGE,
-        CONSOLE_MESSAGE;
-    }
-
-    StringBuilder[] mOutputs = new StringBuilder[OutputType.values().length];
-
-    private StringBuilder getStringBuilderForType(OutputType outputType) {
-        int index = outputType.ordinal();
-        if (mOutputs[index] == null) {
-            mOutputs[index] = new StringBuilder();
-        }
-        return mOutputs[index];
-    }
-
-    public void appendExceededDbQuotaMessage(String urlString, String databaseIdentifier) {
-        StringBuilder output = getStringBuilderForType(OutputType.EXCEEDED_DB_QUOTA_MESSAGE);
-
-        String protocol = "";
-        String host = "";
-        int port = 0;
-
-        try {
-            URL url = new URL(urlString);
-            protocol = url.getProtocol();
-            host = url.getHost();
-            if (url.getPort() > -1) {
-                port = url.getPort();
-            }
-        } catch (MalformedURLException e) {
-            Log.e(LOG_TAG, "urlString=" + urlString + " databaseIdentifier=" + databaseIdentifier,
-                    e);
-        }
-
-        output.append("UI DELEGATE DATABASE CALLBACK: ");
-        output.append("exceededDatabaseQuotaForSecurityOrigin:{");
-        output.append(protocol + ", " + host + ", " + port + "} ");
-        output.append("database:" + databaseIdentifier + "\n");
-    }
-
-    public void appendConsoleMessage(ConsoleMessage consoleMessage) {
-        StringBuilder output = getStringBuilderForType(OutputType.CONSOLE_MESSAGE);
-
-        output.append("CONSOLE MESSAGE: line " + consoleMessage.lineNumber());
-        output.append(": " + consoleMessage.message() + "\n");
-    }
-
-    public void appendJsAlert(String message) {
-        StringBuilder output = getStringBuilderForType(OutputType.JS_DIALOG);
-
-        output.append("ALERT: ");
-        output.append(message);
-        output.append('\n');
-    }
-
-    public void appendJsConfirm(String message) {
-        StringBuilder output = getStringBuilderForType(OutputType.JS_DIALOG);
-
-        output.append("CONFIRM: ");
-        output.append(message);
-        output.append('\n');
-    }
-
-    public void appendJsPrompt(String message, String defaultValue) {
-        StringBuilder output = getStringBuilderForType(OutputType.JS_DIALOG);
-
-        output.append("PROMPT: ");
-        output.append(message);
-        output.append(", default text: ");
-        output.append(defaultValue);
-        output.append('\n');
-    }
-
-    @Override
-    public String toString() {
-        StringBuilder result = new StringBuilder();
-        for (int i = 0; i < mOutputs.length; i++) {
-            if (mOutputs[i] != null) {
-                result.append(mOutputs[i].toString());
-            }
-        }
-        return result.toString();
-    }
-}
\ No newline at end of file
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/CrashedDummyResult.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/CrashedDummyResult.java
deleted file mode 100644
index 4831168..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/CrashedDummyResult.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import android.os.Bundle;
-import android.os.Message;
-import android.webkit.WebView;
-
-/**
- * A dummy class representing test that crashed.
- *
- * TODO: All the methods regarding expected results need implementing.
- */
-public class CrashedDummyResult extends AbstractResult {
-    String mRelativePath;
-
-    public CrashedDummyResult(String relativePath) {
-        mRelativePath = relativePath;
-    }
-
-    @Override
-    public byte[] getActualImageResult() {
-        return null;
-    }
-
-    @Override
-    public String getActualTextResult() {
-        return null;
-    }
-
-    @Override
-    public Bundle getBundle() {
-        /** TODO:  */
-        return null;
-    }
-
-    @Override
-    public String getDiffAsHtml() {
-        /** TODO: Probably show at least expected results */
-        return "Ooops, I crashed...";
-    }
-
-    @Override
-    public String getRelativePath() {
-        return mRelativePath;
-    }
-
-    @Override
-    public ResultCode getResultCode() {
-        return ResultCode.NO_ACTUAL_RESULT;
-    }
-
-    @Override
-    public boolean didCrash() {
-        return true;
-    }
-
-    @Override
-    public boolean didTimeOut() {
-        return false;
-    }
-
-    @Override
-    public void setDidTimeOut() {
-        /** This method is not applicable for this type of result */
-        assert false;
-    }
-
-    @Override
-    public TestType getType() {
-        return null;
-    }
-
-    @Override
-    public void obtainActualResults(WebView webview, Message resultObtainedMsg) {
-        /** This method is not applicable for this type of result */
-        assert false;
-    }
-
-    @Override
-    public void setExpectedImageResult(byte[] expectedResult) {
-        /** TODO */
-    }
-
-    @Override
-    public void setExpectedTextResult(String expectedResult) {
-        /** TODO */
-    }
-
-    @Override
-    public String getExpectedImageResultPath() {
-        /** TODO */
-        return null;
-    }
-
-    @Override
-    public String getExpectedTextResultPath() {
-        /** TODO */
-        return null;
-    }
-
-    @Override
-    public void setExpectedImageResultPath(String relativePath) {
-        /** TODO */
-    }
-
-    @Override
-    public void setExpectedTextResultPath(String relativePath) {
-        /** TODO */
-    }
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/EventSender.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/EventSender.java
deleted file mode 100644
index 5b7cbc4..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/EventSender.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import android.webkit.WebView;
-
-/**
- * A class that acts as a JS interface for webview to mock various touch events,
- * mouse actions and key presses.
- *
- * The methods here just call corresponding methods on EventSenderImpl
- * that contains the logic of how to execute the methods.
- */
-public class EventSender {
-    EventSenderImpl mEventSenderImpl = new EventSenderImpl();
-
-    public void reset(WebView webView) {
-        mEventSenderImpl.reset(webView);
-    }
-
-    public void enableDOMUIEventLogging(int domNode) {
-        mEventSenderImpl.enableDOMUIEventLogging(domNode);
-    }
-
-    public void fireKeyboardEventsToElement(int domNode) {
-        mEventSenderImpl.fireKeyboardEventsToElement(domNode);
-    }
-
-    public void keyDown(String character, String[] withModifiers) {
-        mEventSenderImpl.keyDown(character, withModifiers);
-    }
-
-    public void keyDown(String character) {
-        keyDown(character, null);
-    }
-
-    public void leapForward(int milliseconds) {
-        mEventSenderImpl.leapForward(milliseconds);
-    }
-
-    public void mouseClick() {
-        mEventSenderImpl.mouseClick();
-    }
-
-    public void mouseDown() {
-        mEventSenderImpl.mouseDown();
-    }
-
-    public void mouseMoveTo(int x, int y) {
-        mEventSenderImpl.mouseMoveTo(x, y);
-    }
-
-    public void mouseUp() {
-        mEventSenderImpl.mouseUp();
-    }
-
-    public void touchStart() {
-        mEventSenderImpl.touchStart();
-    }
-
-    public void addTouchPoint(int x, int y) {
-        mEventSenderImpl.addTouchPoint(x, y);
-    }
-
-    public void updateTouchPoint(int id, int x, int y) {
-        mEventSenderImpl.updateTouchPoint(id, x, y);
-    }
-
-    public void setTouchModifier(String modifier, boolean enabled) {
-        mEventSenderImpl.setTouchModifier(modifier, enabled);
-    }
-
-    public void touchMove() {
-        mEventSenderImpl.touchMove();
-    }
-
-    public void releaseTouchPoint(int id) {
-        mEventSenderImpl.releaseTouchPoint(id);
-    }
-
-    public void touchEnd() {
-        mEventSenderImpl.touchEnd();
-    }
-
-    public void touchCancel() {
-        mEventSenderImpl.touchCancel();
-    }
-
-    public void clearTouchPoints() {
-        mEventSenderImpl.clearTouchPoints();
-    }
-
-    public void cancelTouchPoint(int id) {
-        mEventSenderImpl.cancelTouchPoint(id);
-    }
-}
\ No newline at end of file
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/EventSenderImpl.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/EventSenderImpl.java
deleted file mode 100644
index af22039..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/EventSenderImpl.java
+++ /dev/null
@@ -1,590 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.os.SystemClock;
-import android.util.Log;
-import android.view.KeyEvent;
-import android.view.MotionEvent;
-import android.webkit.WebView;
-
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * An implementation of EventSender
- */
-public class EventSenderImpl {
-    private static final String LOG_TAG = "EventSenderImpl";
-
-    private static final int MSG_ENABLE_DOM_UI_EVENT_LOGGING = 0;
-    private static final int MSG_FIRE_KEYBOARD_EVENTS_TO_ELEMENT = 1;
-    private static final int MSG_LEAP_FORWARD = 2;
-
-    private static final int MSG_KEY_DOWN = 3;
-
-    private static final int MSG_MOUSE_DOWN = 4;
-    private static final int MSG_MOUSE_UP = 5;
-    private static final int MSG_MOUSE_CLICK = 6;
-    private static final int MSG_MOUSE_MOVE_TO = 7;
-
-    private static final int MSG_ADD_TOUCH_POINT = 8;
-    private static final int MSG_TOUCH_START = 9;
-    private static final int MSG_UPDATE_TOUCH_POINT = 10;
-    private static final int MSG_TOUCH_MOVE = 11;
-    private static final int MSG_CLEAR_TOUCH_POINTS = 12;
-    private static final int MSG_TOUCH_CANCEL = 13;
-    private static final int MSG_RELEASE_TOUCH_POINT = 14;
-    private static final int MSG_TOUCH_END = 15;
-    private static final int MSG_SET_TOUCH_MODIFIER = 16;
-    private static final int MSG_CANCEL_TOUCH_POINT = 17;
-
-    private static class Point {
-        private int mX;
-        private int mY;
-
-        public Point(int x, int y) {
-            mX = x;
-            mY = y;
-        }
-        public int x() {
-            return mX;
-        }
-        public int y() {
-            return mY;
-        }
-    }
-
-    private Point createViewPointFromContentCoordinates(int x, int y) {
-        return new Point(Math.round(x * mWebView.getScale()) - mWebView.getScrollX(),
-                         Math.round(y * mWebView.getScale()) - mWebView.getScrollY());
-    }
-
-    public static class TouchPoint {
-        private int mId;
-        private Point mPoint;
-        private long mDownTime;
-        private boolean mReleased = false;
-        private boolean mMoved = false;
-        private boolean mCancelled = false;
-
-        public TouchPoint(int id, Point point) {
-            mId = id;
-            mPoint = point;
-        }
-
-        public int getId() {
-          return mId;
-        }
-
-        public int getX() {
-            return mPoint.x();
-        }
-
-        public int getY() {
-            return mPoint.y();
-        }
-
-        public boolean hasMoved() {
-            return mMoved;
-        }
-
-        public void move(Point point) {
-            mPoint = point;
-            mMoved = true;
-        }
-
-        public void resetHasMoved() {
-            mMoved = false;
-        }
-
-        public long getDownTime() {
-            return mDownTime;
-        }
-
-        public void setDownTime(long downTime) {
-            mDownTime = downTime;
-        }
-
-        public boolean isReleased() {
-            return mReleased;
-        }
-
-        public void release() {
-            mReleased = true;
-        }
-
-        public boolean isCancelled() {
-            return mCancelled;
-        }
-
-        public void cancel() {
-            mCancelled = true;
-        }
-    }
-
-    private List<TouchPoint> mTouchPoints;
-    private int mTouchMetaState;
-    private Point mMousePoint;
-
-    private WebView mWebView;
-
-    private Handler mEventSenderHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            Bundle bundle;
-            MotionEvent event;
-            long ts;
-
-            switch (msg.what) {
-                case MSG_ENABLE_DOM_UI_EVENT_LOGGING:
-                    /** TODO: implement */
-                    break;
-
-                case MSG_FIRE_KEYBOARD_EVENTS_TO_ELEMENT:
-                    /** TODO: implement */
-                    break;
-
-                case MSG_LEAP_FORWARD:
-                    /** TODO: implement */
-                    break;
-
-                case MSG_KEY_DOWN:
-                    bundle = (Bundle)msg.obj;
-                    String character = bundle.getString("character");
-                    String[] withModifiers = bundle.getStringArray("withModifiers");
-
-                    if (withModifiers != null && withModifiers.length > 0) {
-                        for (int i = 0; i < withModifiers.length; i++) {
-                            executeKeyEvent(KeyEvent.ACTION_DOWN,
-                                    modifierToKeyCode(withModifiers[i]));
-                        }
-                    }
-                    executeKeyEvent(KeyEvent.ACTION_DOWN,
-                            charToKeyCode(character.toLowerCase().toCharArray()[0]));
-                    break;
-
-                /** MOUSE */
-
-                case MSG_MOUSE_DOWN:
-                    if (mMousePoint != null) {
-                        ts = SystemClock.uptimeMillis();
-                        event = MotionEvent.obtain(ts, ts, MotionEvent.ACTION_DOWN, mMousePoint.x(), mMousePoint.y(), 0);
-                        mWebView.onTouchEvent(event);
-                    }
-                    break;
-
-                case MSG_MOUSE_UP:
-                    if (mMousePoint != null) {
-                        ts = SystemClock.uptimeMillis();
-                        event = MotionEvent.obtain(ts, ts, MotionEvent.ACTION_UP, mMousePoint.x(), mMousePoint.y(), 0);
-                        mWebView.onTouchEvent(event);
-                    }
-                    break;
-
-                case MSG_MOUSE_CLICK:
-                    mouseDown();
-                    mouseUp();
-                    break;
-
-                case MSG_MOUSE_MOVE_TO:
-                    mMousePoint = createViewPointFromContentCoordinates(msg.arg1, msg.arg2);
-                    break;
-
-                /** TOUCH */
-
-                case MSG_ADD_TOUCH_POINT:
-                    int numPoints = getTouchPoints().size();
-                    int id;
-                    if (numPoints == 0) {
-                        id = 0;
-                    } else {
-                        id = getTouchPoints().get(numPoints - 1).getId() + 1;
-                    }
-                    getTouchPoints().add(
-                            new TouchPoint(id, createViewPointFromContentCoordinates(msg.arg1, msg.arg2)));
-                    break;
-
-                case MSG_TOUCH_START:
-                    if (getTouchPoints().isEmpty()) {
-                        return;
-                    }
-                    for (int i = 0; i < getTouchPoints().size(); ++i) {
-                        getTouchPoints().get(i).setDownTime(SystemClock.uptimeMillis());
-                    }
-                    executeTouchEvent(MotionEvent.ACTION_DOWN);
-                    break;
-
-                case MSG_UPDATE_TOUCH_POINT:
-                    bundle = (Bundle)msg.obj;
-
-                    int index = bundle.getInt("id");
-                    if (index >= getTouchPoints().size()) {
-                        Log.w(LOG_TAG + "::MSG_UPDATE_TOUCH_POINT", "TouchPoint out of bounds: "
-                                + index);
-                        break;
-                    }
-
-                    getTouchPoints().get(index).move(
-                            createViewPointFromContentCoordinates(bundle.getInt("x"), bundle.getInt("y")));
-                    break;
-
-                case MSG_TOUCH_MOVE:
-                    /**
-                     * FIXME: At the moment we don't support multi-touch. Hence, we only examine
-                     * the first touch point. In future this method will need rewriting.
-                     */
-                    if (getTouchPoints().isEmpty()) {
-                        return;
-                    }
-                    executeTouchEvent(MotionEvent.ACTION_MOVE);
-                    for (int i = 0; i < getTouchPoints().size(); ++i) {
-                        getTouchPoints().get(i).resetHasMoved();
-                    }
-                    break;
-
-                case MSG_CANCEL_TOUCH_POINT:
-                    if (msg.arg1 >= getTouchPoints().size()) {
-                        Log.w(LOG_TAG + "::MSG_RELEASE_TOUCH_POINT", "TouchPoint out of bounds: "
-                                + msg.arg1);
-                        break;
-                    }
-
-                    getTouchPoints().get(msg.arg1).cancel();
-                    break;
-
-                case MSG_TOUCH_CANCEL:
-                    /**
-                     * FIXME: At the moment we don't support multi-touch. Hence, we only examine
-                     * the first touch point. In future this method will need rewriting.
-                     */
-                    if (getTouchPoints().isEmpty()) {
-                        return;
-                    }
-                    executeTouchEvent(MotionEvent.ACTION_CANCEL);
-                    break;
-
-                case MSG_RELEASE_TOUCH_POINT:
-                    if (msg.arg1 >= getTouchPoints().size()) {
-                        Log.w(LOG_TAG + "::MSG_RELEASE_TOUCH_POINT", "TouchPoint out of bounds: "
-                                + msg.arg1);
-                        break;
-                    }
-
-                    getTouchPoints().get(msg.arg1).release();
-                    break;
-
-                case MSG_TOUCH_END:
-                    /**
-                     * FIXME: At the moment we don't support multi-touch. Hence, we only examine
-                     * the first touch point. In future this method will need rewriting.
-                     */
-                    if (getTouchPoints().isEmpty()) {
-                        return;
-                    }
-                    executeTouchEvent(MotionEvent.ACTION_UP);
-                    // remove released points.
-                    for (int i = getTouchPoints().size() - 1; i >= 0; --i) {
-                        if (getTouchPoints().get(i).isReleased()) {
-                            getTouchPoints().remove(i);
-                        }
-                    }
-                    break;
-
-                case MSG_SET_TOUCH_MODIFIER:
-                    bundle = (Bundle)msg.obj;
-                    String modifier = bundle.getString("modifier");
-                    boolean enabled = bundle.getBoolean("enabled");
-
-                    int mask = 0;
-                    if ("alt".equals(modifier.toLowerCase())) {
-                        mask = KeyEvent.META_ALT_ON;
-                    } else if ("shift".equals(modifier.toLowerCase())) {
-                        mask = KeyEvent.META_SHIFT_ON;
-                    } else if ("ctrl".equals(modifier.toLowerCase())) {
-                        mask = KeyEvent.META_SYM_ON;
-                    }
-
-                    if (enabled) {
-                        mTouchMetaState |= mask;
-                    } else {
-                        mTouchMetaState &= ~mask;
-                    }
-
-                    break;
-
-                case MSG_CLEAR_TOUCH_POINTS:
-                    getTouchPoints().clear();
-                    break;
-
-                default:
-                    break;
-            }
-        }
-    };
-
-    public void reset(WebView webView) {
-        mWebView = webView;
-        mTouchPoints = null;
-        mTouchMetaState = 0;
-        mMousePoint = null;
-    }
-
-    public void enableDOMUIEventLogging(int domNode) {
-        Message msg = mEventSenderHandler.obtainMessage(MSG_ENABLE_DOM_UI_EVENT_LOGGING);
-        msg.arg1 = domNode;
-        msg.sendToTarget();
-    }
-
-    public void fireKeyboardEventsToElement(int domNode) {
-        Message msg = mEventSenderHandler.obtainMessage(MSG_FIRE_KEYBOARD_EVENTS_TO_ELEMENT);
-        msg.arg1 = domNode;
-        msg.sendToTarget();
-    }
-
-    public void leapForward(int milliseconds) {
-        Message msg = mEventSenderHandler.obtainMessage(MSG_LEAP_FORWARD);
-        msg.arg1 = milliseconds;
-        msg.sendToTarget();
-    }
-
-    public void keyDown(String character, String[] withModifiers) {
-        Bundle bundle = new Bundle();
-        bundle.putString("character", character);
-        bundle.putStringArray("withModifiers", withModifiers);
-        mEventSenderHandler.obtainMessage(MSG_KEY_DOWN, bundle).sendToTarget();
-    }
-
-    /** MOUSE */
-
-    public void mouseDown() {
-        mEventSenderHandler.sendEmptyMessage(MSG_MOUSE_DOWN);
-    }
-
-    public void mouseUp() {
-        mEventSenderHandler.sendEmptyMessage(MSG_MOUSE_UP);
-    }
-
-    public void mouseClick() {
-        mEventSenderHandler.sendEmptyMessage(MSG_MOUSE_CLICK);
-    }
-
-    public void mouseMoveTo(int x, int y) {
-        mEventSenderHandler.obtainMessage(MSG_MOUSE_MOVE_TO, x, y).sendToTarget();
-    }
-
-    /** TOUCH */
-
-    public void addTouchPoint(int x, int y) {
-        mEventSenderHandler.obtainMessage(MSG_ADD_TOUCH_POINT, x, y).sendToTarget();
-    }
-
-    public void touchStart() {
-        mEventSenderHandler.sendEmptyMessage(MSG_TOUCH_START);
-    }
-
-    public void updateTouchPoint(int id, int x, int y) {
-        Bundle bundle = new Bundle();
-        bundle.putInt("id", id);
-        bundle.putInt("x", x);
-        bundle.putInt("y", y);
-        mEventSenderHandler.obtainMessage(MSG_UPDATE_TOUCH_POINT, bundle).sendToTarget();
-    }
-
-    public void touchMove() {
-        mEventSenderHandler.sendEmptyMessage(MSG_TOUCH_MOVE);
-    }
-
-    public void cancelTouchPoint(int id) {
-        Message msg = mEventSenderHandler.obtainMessage(MSG_CANCEL_TOUCH_POINT);
-        msg.arg1 = id;
-        msg.sendToTarget();
-    }
-
-    public void touchCancel() {
-        mEventSenderHandler.sendEmptyMessage(MSG_TOUCH_CANCEL);
-    }
-
-    public void releaseTouchPoint(int id) {
-        Message msg = mEventSenderHandler.obtainMessage(MSG_RELEASE_TOUCH_POINT);
-        msg.arg1 = id;
-        msg.sendToTarget();
-    }
-
-    public void touchEnd() {
-        mEventSenderHandler.sendEmptyMessage(MSG_TOUCH_END);
-    }
-
-    public void setTouchModifier(String modifier, boolean enabled) {
-        Bundle bundle = new Bundle();
-        bundle.putString("modifier", modifier);
-        bundle.putBoolean("enabled", enabled);
-        mEventSenderHandler.obtainMessage(MSG_SET_TOUCH_MODIFIER, bundle).sendToTarget();
-    }
-
-    public void clearTouchPoints() {
-        mEventSenderHandler.sendEmptyMessage(MSG_CLEAR_TOUCH_POINTS);
-    }
-
-    private List<TouchPoint> getTouchPoints() {
-        if (mTouchPoints == null) {
-            mTouchPoints = new LinkedList<TouchPoint>();
-        }
-
-        return mTouchPoints;
-    }
-
-    private void executeTouchEvent(int action) {
-        int numPoints = getTouchPoints().size();
-        int[] pointerIds = new int[numPoints];
-        MotionEvent.PointerCoords[] pointerCoords = new MotionEvent.PointerCoords[numPoints];
-
-        for (int i = 0; i < numPoints; ++i) {
-            boolean isNeeded = false;
-            switch(action) {
-            case MotionEvent.ACTION_DOWN:
-            case MotionEvent.ACTION_UP:
-                isNeeded = true;
-                break;
-            case MotionEvent.ACTION_MOVE:
-                isNeeded = getTouchPoints().get(i).hasMoved();
-                break;
-            case MotionEvent.ACTION_CANCEL:
-                isNeeded = getTouchPoints().get(i).isCancelled();
-                break;
-            default:
-                Log.w(LOG_TAG + "::executeTouchEvent(),", "action not supported:" + action);
-                break;
-            }
-
-            numPoints = 0;
-            if (isNeeded) {
-                pointerIds[numPoints] = getTouchPoints().get(i).getId();
-                pointerCoords[numPoints] = new MotionEvent.PointerCoords();
-                pointerCoords[numPoints].x = getTouchPoints().get(i).getX();
-                pointerCoords[numPoints].y = getTouchPoints().get(i).getY();
-                ++numPoints;
-            }
-        }
-
-        if (numPoints == 0) {
-            return;
-        }
-
-        MotionEvent event = MotionEvent.obtain(mTouchPoints.get(0).getDownTime(),
-                SystemClock.uptimeMillis(), action,
-                numPoints, pointerIds, pointerCoords,
-                mTouchMetaState, 1.0f, 1.0f, 0, 0, 0, 0);
-
-        mWebView.onTouchEvent(event);
-    }
-
-    private void executeKeyEvent(int action, int keyCode) {
-        KeyEvent event = new KeyEvent(action, keyCode);
-        mWebView.onKeyDown(event.getKeyCode(), event);
-    }
-
-    /**
-     * Assumes lowercase chars, case needs to be handled by calling function.
-     */
-    private static int charToKeyCode(char c) {
-        // handle numbers
-        if (c >= '0' && c <= '9') {
-            int offset = c - '0';
-            return KeyEvent.KEYCODE_0 + offset;
-        }
-
-        // handle characters
-        if (c >= 'a' && c <= 'z') {
-            int offset = c - 'a';
-            return KeyEvent.KEYCODE_A + offset;
-        }
-
-        // handle all others
-        switch (c) {
-            case '*':
-                return KeyEvent.KEYCODE_STAR;
-
-            case '#':
-                return KeyEvent.KEYCODE_POUND;
-
-            case ',':
-                return KeyEvent.KEYCODE_COMMA;
-
-            case '.':
-                return KeyEvent.KEYCODE_PERIOD;
-
-            case '\t':
-                return KeyEvent.KEYCODE_TAB;
-
-            case ' ':
-                return KeyEvent.KEYCODE_SPACE;
-
-            case '\n':
-                return KeyEvent.KEYCODE_ENTER;
-
-            case '\b':
-            case 0x7F:
-                return KeyEvent.KEYCODE_DEL;
-
-            case '~':
-                return KeyEvent.KEYCODE_GRAVE;
-
-            case '-':
-                return KeyEvent.KEYCODE_MINUS;
-
-            case '=':
-                return KeyEvent.KEYCODE_EQUALS;
-
-            case '(':
-                return KeyEvent.KEYCODE_LEFT_BRACKET;
-
-            case ')':
-                return KeyEvent.KEYCODE_RIGHT_BRACKET;
-
-            case '\\':
-                return KeyEvent.KEYCODE_BACKSLASH;
-
-            case ';':
-                return KeyEvent.KEYCODE_SEMICOLON;
-
-            case '\'':
-                return KeyEvent.KEYCODE_APOSTROPHE;
-
-            case '/':
-                return KeyEvent.KEYCODE_SLASH;
-
-            default:
-                return c;
-        }
-    }
-
-    private static int modifierToKeyCode(String modifier) {
-        if (modifier.equals("ctrlKey")) {
-            return KeyEvent.KEYCODE_ALT_LEFT;
-        } else if (modifier.equals("shiftKey")) {
-            return KeyEvent.KEYCODE_SHIFT_LEFT;
-        } else if (modifier.equals("altKey")) {
-            return KeyEvent.KEYCODE_SYM;
-        }
-
-        return KeyEvent.KEYCODE_UNKNOWN;
-    }
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/FileFilter.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/FileFilter.java
deleted file mode 100644
index 5360e3d..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/FileFilter.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import android.util.Log;
-
-import com.android.dumprendertree2.forwarder.ForwarderManager;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.StringReader;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-/**
- * A utility to filter out some files/directories from the views and tests that run.
- */
-public class FileFilter {
-    private static final String LOG_TAG = "FileFilter";
-
-    private static final String TEST_EXPECTATIONS_TXT_PATH =
-            "platform/android/test_expectations.txt";
-
-    private static final String HTTP_TESTS_PATH = "http/tests/";
-    private static final String SSL_PATH = "ssl/";
-
-    private static final String TOKEN_CRASH = "CRASH";
-    private static final String TOKEN_FAIL = "FAIL";
-    private static final String TOKEN_SLOW = "SLOW";
-
-    private final Set<String> mCrashList = new HashSet<String>();
-    private final Set<String> mFailList = new HashSet<String>();
-    private final Set<String> mSlowList = new HashSet<String>();
-
-    public FileFilter() {
-        loadTestExpectations();
-    }
-
-    private static final String trimTrailingSlashIfPresent(String path) {
-        File file = new File(path);
-        return file.getPath();
-    }
-
-    public void loadTestExpectations() {
-        URL url = null;
-        try {
-            url = new URL(ForwarderManager.getHostSchemePort(false) +
-                    "LayoutTests/" + TEST_EXPECTATIONS_TXT_PATH);
-        } catch (MalformedURLException e) {
-            assert false;
-        }
-
-        try {
-            InputStream inputStream = null;
-            BufferedReader bufferedReader = null;
-            try {
-                byte[] httpAnswer = FsUtils.readDataFromUrl(url);
-                if (httpAnswer == null) {
-                    Log.w(LOG_TAG, "loadTestExpectations(): File not found: " +
-                            TEST_EXPECTATIONS_TXT_PATH);
-                    return;
-                }
-                bufferedReader = new BufferedReader(new StringReader(
-                        new String(httpAnswer)));
-                String line;
-                String entry;
-                String[] parts;
-                String path;
-                Set<String> tokens;
-                while (true) {
-                    line = bufferedReader.readLine();
-                    if (line == null) {
-                        break;
-                    }
-
-                    /** Remove the comment and trim */
-                    entry = line.split("//", 2)[0].trim();
-
-                    /** Omit empty lines, advance to next line */
-                    if (entry.isEmpty()) {
-                        continue;
-                    }
-
-                    /** Split on whitespace into path part and the rest */
-                    parts = entry.split("\\s", 2);
-
-                    /** At this point parts.length >= 1 */
-                    if (parts.length == 1) {
-                        Log.w(LOG_TAG + "::reloadConfiguration",
-                                "There are no options specified for the test!");
-                        continue;
-                    }
-
-                    path = trimTrailingSlashIfPresent(parts[0]);
-
-                    /** Split on whitespace */
-                    tokens = new HashSet<String>(Arrays.asList(
-                            parts[1].split("\\s", 0)));
-
-                    /** Chose the right collections to add to */
-                    if (tokens.contains(TOKEN_CRASH)) {
-                        mCrashList.add(path);
-
-                        /** If test is on skip list we ignore any further options */
-                        continue;
-                    }
-
-                    if (tokens.contains(TOKEN_FAIL)) {
-                        mFailList.add(path);
-                    }
-                    if (tokens.contains(TOKEN_SLOW)) {
-                        mSlowList.add(path);
-                    }
-                }
-            } finally {
-                if (inputStream != null) {
-                    inputStream.close();
-                }
-                if (bufferedReader != null) {
-                    bufferedReader.close();
-                }
-            }
-        } catch (IOException e) {
-            Log.e(LOG_TAG, "url=" + url, e);
-        }
-    }
-
-    /**
-     * Checks if test is expected to crash.
-     *
-     * <p>
-     * Path given should relative within LayoutTests folder, e.g. fast/dom/foo.html
-     *
-     * @param testPath
-     *            - a relative path within LayoutTests folder
-     * @return if the test is supposed to be skipped
-     */
-    public boolean isCrash(String testPath) {
-        for (String prefix : getPrefixes(testPath)) {
-            if (mCrashList.contains(prefix)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Checks if test result is supposed to be "failed".
-     *
-     * <p>
-     * Path given should relative within LayoutTests folder, e.g. fast/dom/foo.html
-     *
-     * @param testPath
-     *            - a relative path within LayoutTests folder
-     * @return if the test result is supposed to be "failed"
-     */
-    public boolean isFail(String testPath) {
-        for (String prefix : getPrefixes(testPath)) {
-            if (mFailList.contains(prefix)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Checks if test is slow and should have timeout increased.
-     *
-     * <p>
-     * Path given should relative within LayoutTests folder, e.g. fast/dom/foo.html
-     *
-     * @param testPath
-     *            - a relative path within LayoutTests folder
-     * @return if the test is slow and should have timeout increased.
-     */
-    public boolean isSlow(String testPath) {
-        for (String prefix : getPrefixes(testPath)) {
-            if (mSlowList.contains(prefix)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Returns the list of all path prefixes of the given path.
-     *
-     * <p>
-     * e.g. this/is/a/path returns the list: this this/is this/is/a this/is/a/path
-     *
-     * @param path
-     * @return the list of all path prefixes of the given path.
-     */
-    private static List<String> getPrefixes(String path) {
-        File file = new File(path);
-        List<String> prefixes = new ArrayList<String>(8);
-
-        do {
-            prefixes.add(file.getPath());
-            file = file.getParentFile();
-        } while (file != null);
-
-        return prefixes;
-    }
-
-    /**
-     * Checks if the directory may contain tests or contains just helper files.
-     *
-     * @param dirName
-     * @return
-     *      if the directory may contain tests
-     */
-    public static boolean isTestDir(String dirName) {
-        return (!dirName.equals("script-tests")
-                && !dirName.equals("resources") && !dirName.startsWith("."));
-    }
-
-    /**
-     * Checks if the file is a test.
-     * Currently we run .html, .xhtml and .php tests.
-     *
-     * @warning You MUST also call isTestDir() on the parent directory before
-     * assuming that a file is a test.
-     *
-     * @param testName
-     * @return if the file is a test
-     */
-    public static boolean isTestFile(String testName) {
-        return testName.endsWith(".html")
-            || testName.endsWith(".xhtml")
-            || testName.endsWith(".php");
-    }
-
-    /**
-     * Return a URL of the test on the server.
-     *
-     * @param relativePath
-     * @param allowHttps Whether to allow the use of HTTPS, even if the file is in the SSL
-     *     directory.
-     * @return a URL of the test on the server
-     */
-    public static URL getUrl(String relativePath, boolean allowHttps) {
-        String urlBase = ForwarderManager.getHostSchemePort(false);
-
-        /**
-         * URL is formed differently for HTTP vs non-HTTP tests, because HTTP tests
-         * expect different document root. See run_apache2.py and .conf file for details
-         */
-        if (relativePath.startsWith(HTTP_TESTS_PATH)) {
-            relativePath = relativePath.substring(HTTP_TESTS_PATH.length());
-            if (relativePath.startsWith(SSL_PATH) && allowHttps) {
-                urlBase = ForwarderManager.getHostSchemePort(true);
-            }
-        } else {
-            relativePath = "LayoutTests/" + relativePath;
-        }
-
-        try {
-            return new URL(urlBase + relativePath);
-        } catch (MalformedURLException e) {
-            Log.e(LOG_TAG, "Malformed URL!", e);
-        }
-
-        return null;
-    }
-
-    /**
-     * If the path contains extension (e.g .foo at the end of the file) then it changes
-     * this (.foo) into newEnding (so it has to contain the dot if we want to preserve it).
-     *
-     * <p>If the path doesn't contain an extension, it adds the ending to the path.
-     *
-     * @param relativePath
-     * @param newEnding
-     * @return
-     *      a new path, containing the newExtension
-     */
-    public static String setPathEnding(String relativePath, String newEnding) {
-        int dotPos = relativePath.lastIndexOf('.');
-        if (dotPos == -1) {
-            return relativePath + newEnding;
-        }
-
-        return relativePath.substring(0, dotPos) + newEnding;
-    }
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/FsUtils.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/FsUtils.java
deleted file mode 100644
index 54cbfda..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/FsUtils.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import android.util.Log;
-
-import com.android.dumprendertree2.forwarder.ForwarderManager;
-
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.ResponseHandler;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.conn.scheme.PlainSocketFactory;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.scheme.SchemeRegistry;
-import org.apache.http.conn.ssl.SSLSocketFactory;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpConnectionParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.util.EntityUtils;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.SocketTimeoutException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- *
- */
-public class FsUtils {
-    public static final String LOG_TAG = "FsUtils";
-
-    private static final String SCRIPT_URL = ForwarderManager.getHostSchemePort(false) +
-            "Tools/DumpRenderTree/android/get_layout_tests_dir_contents.php";
-
-    private static final int HTTP_TIMEOUT_MS = 5000;
-
-    private static HttpClient sHttpClient;
-
-    private static HttpClient getHttpClient() {
-        if (sHttpClient == null) {
-            HttpParams params = new BasicHttpParams();
-
-            SchemeRegistry schemeRegistry = new SchemeRegistry();
-            schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(),
-                    ForwarderManager.HTTP_PORT));
-            schemeRegistry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(),
-                    ForwarderManager.HTTPS_PORT));
-
-            ClientConnectionManager connectionManager = new ThreadSafeClientConnManager(params,
-                    schemeRegistry);
-            sHttpClient = new DefaultHttpClient(connectionManager, params);
-            HttpConnectionParams.setSoTimeout(sHttpClient.getParams(), HTTP_TIMEOUT_MS);
-            HttpConnectionParams.setConnectionTimeout(sHttpClient.getParams(), HTTP_TIMEOUT_MS);
-        }
-        return sHttpClient;
-    }
-
-    public static void writeDataToStorage(File file, byte[] bytes, boolean append) {
-        Log.d(LOG_TAG, "writeDataToStorage(): " + file.getAbsolutePath());
-        try {
-            OutputStream outputStream = null;
-            try {
-                file.getParentFile().mkdirs();
-                file.createNewFile();
-                Log.d(LOG_TAG, "writeDataToStorage(): File created: " + file.getAbsolutePath());
-                outputStream = new FileOutputStream(file, append);
-                outputStream.write(bytes);
-            } finally {
-                if (outputStream != null) {
-                    outputStream.close();
-                }
-            }
-        } catch (IOException e) {
-            Log.e(LOG_TAG, "file.getAbsolutePath=" + file.getAbsolutePath() + " append=" + append,
-                    e);
-        }
-    }
-
-    public static byte[] readDataFromStorage(File file) {
-        if (!file.exists()) {
-            Log.d(LOG_TAG, "readDataFromStorage(): File does not exist: "
-                    + file.getAbsolutePath());
-            return null;
-        }
-
-        byte[] bytes = null;
-        try {
-            FileInputStream fis = null;
-            try {
-                fis = new FileInputStream(file);
-                bytes = new byte[(int)file.length()];
-                fis.read(bytes);
-            } finally {
-                if (fis != null) {
-                    fis.close();
-                }
-            }
-        } catch (IOException e) {
-            Log.e(LOG_TAG, "file.getAbsolutePath=" + file.getAbsolutePath(), e);
-        }
-
-        return bytes;
-    }
-
-    static class UrlDataGetter extends Thread {
-        private URL mUrl;
-        private byte[] mBytes;
-        private boolean mGetComplete;
-        public UrlDataGetter(URL url) {
-            mUrl = url;
-        }
-        public byte[] get() {
-            start();
-            synchronized(this) {
-                while (!mGetComplete) {
-                    try{
-                        wait();
-                    } catch(InterruptedException e) {
-                    }
-                }
-            }
-            return mBytes;
-        }
-        public synchronized void run() {
-            mGetComplete = false;
-            HttpGet httpRequest = new HttpGet(mUrl.toString());
-            ResponseHandler<byte[]> handler = new ResponseHandler<byte[]>() {
-                @Override
-                public byte[] handleResponse(HttpResponse response) throws IOException {
-                    if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
-                        return null;
-                    }
-                    HttpEntity entity = response.getEntity();
-                    return (entity == null ? null : EntityUtils.toByteArray(entity));
-                }
-            };
-
-            mBytes = null;
-            try {
-                /**
-                 * TODO: Not exactly sure why some requests hang indefinitely, but adding this
-                 * timeout (in static getter for http client) in loop helps.
-                 */
-                boolean timedOut;
-                do {
-                    timedOut = false;
-                    try {
-                        mBytes = getHttpClient().execute(httpRequest, handler);
-                    } catch (SocketTimeoutException e) {
-                        timedOut = true;
-                        Log.w(LOG_TAG, "Expected SocketTimeoutException: " + mUrl, e);
-                    }
-                } while (timedOut);
-            } catch (IOException e) {
-                Log.e(LOG_TAG, "url=" + mUrl, e);
-            }
-
-            mGetComplete = true;
-            notify();
-        }
-    }
-
-    public static byte[] readDataFromUrl(URL url) {
-        if (url == null) {
-            Log.w(LOG_TAG, "readDataFromUrl(): url is null!");
-            return null;
-        }
-
-        UrlDataGetter getter = new UrlDataGetter(url);
-        return getter.get();
-    }
-
-    public static List<String> getLayoutTestsDirContents(String dirRelativePath, boolean recurse,
-            boolean mode) {
-        String modeString = (mode ? "folders" : "files");
-
-        URL url = null;
-        try {
-            url = new URL(SCRIPT_URL +
-                    "?path=" + dirRelativePath +
-                    "&recurse=" + recurse +
-                    "&mode=" + modeString);
-        } catch (MalformedURLException e) {
-            Log.e(LOG_TAG, "path=" + dirRelativePath + " recurse=" + recurse + " mode=" +
-                    modeString, e);
-            return new LinkedList<String>();
-        }
-
-        HttpGet httpRequest = new HttpGet(url.toString());
-        ResponseHandler<LinkedList<String>> handler = new ResponseHandler<LinkedList<String>>() {
-            @Override
-            public LinkedList<String> handleResponse(HttpResponse response)
-                    throws IOException {
-                LinkedList<String> lines = new LinkedList<String>();
-
-                if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
-                    return lines;
-                }
-                HttpEntity entity = response.getEntity();
-                if (entity == null) {
-                    return lines;
-                }
-
-                BufferedReader reader =
-                        new BufferedReader(new InputStreamReader(entity.getContent()));
-                String line;
-                try {
-                    while ((line = reader.readLine()) != null) {
-                        lines.add(line);
-                    }
-                } finally {
-                    if (reader != null) {
-                        reader.close();
-                    }
-                }
-
-                return lines;
-            }
-        };
-
-        try {
-            return getHttpClient().execute(httpRequest, handler);
-        } catch (IOException e) {
-            Log.e(LOG_TAG, "getLayoutTestsDirContents(): HTTP GET failed for URL " + url);
-            return null;
-        }
-    }
-
-    public static void closeInputStream(InputStream inputStream) {
-        try {
-            if (inputStream != null) {
-                inputStream.close();
-            }
-        } catch (IOException e) {
-            Log.e(LOG_TAG, "Couldn't close stream!", e);
-        }
-    }
-
-    public static void closeOutputStream(OutputStream outputStream) {
-        try {
-            if (outputStream != null) {
-                outputStream.close();
-            }
-        } catch (IOException e) {
-            Log.e(LOG_TAG, "Couldn't close stream!", e);
-        }
-    }
-
-    public static List<String> loadTestListFromStorage(String path) {
-        List<String> list = new ArrayList<String>();
-        if (path != null && !path.isEmpty()) {
-            try {
-                File file = new File(path);
-                Log.d(LOG_TAG, "test list loaded from " + path);
-                BufferedReader reader = new BufferedReader(new FileReader(file));
-                String line = null;
-                while ((line = reader.readLine()) != null) {
-                    list.add(line);
-                }
-                reader.close();
-            } catch (IOException ioe) {
-                Log.e(LOG_TAG, "failed to load test list", ioe);
-            }
-        }
-        return list;
-    }
-
-    public static void saveTestListToStorage(File file, int start, List<String> testList) {
-        try {
-            BufferedWriter writer = new BufferedWriter(
-                    new FileWriter(file));
-            for (String line : testList.subList(start, testList.size())) {
-                writer.write(line + '\n');
-            }
-            writer.flush();
-            writer.close();
-        } catch (IOException e) {
-            Log.e(LOG_TAG, "failed to write test list", e);
-        }
-    }
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestController.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestController.java
deleted file mode 100644
index c9c35ce..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestController.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import android.net.Uri;
-import android.util.Log;
-import android.webkit.MockGeolocation;
-import android.webkit.WebStorage;
-
-import java.io.File;
-
-/**
- * A class that is registered as JS interface for webview in LayoutTestExecutor
- */
-public class LayoutTestController {
-    private static final String LOG_TAG = "LayoutTestController";
-
-    LayoutTestsExecutor mLayoutTestsExecutor;
-
-    public LayoutTestController(LayoutTestsExecutor layoutTestsExecutor) {
-        mLayoutTestsExecutor = layoutTestsExecutor;
-    }
-
-    public void clearAllDatabases() {
-        Log.i(LOG_TAG, "clearAllDatabases() called");
-        WebStorage.getInstance().deleteAllData();
-    }
-
-    public void dumpAsText() {
-        dumpAsText(false);
-    }
-
-    public void dumpAsText(boolean enablePixelTest) {
-        mLayoutTestsExecutor.dumpAsText(enablePixelTest);
-    }
-
-    public void dumpChildFramesAsText() {
-        mLayoutTestsExecutor.dumpChildFramesAsText();
-    }
-
-    public void dumpDatabaseCallbacks() {
-        mLayoutTestsExecutor.dumpDatabaseCallbacks();
-    }
-
-    public void notifyDone() {
-        mLayoutTestsExecutor.notifyDone();
-    }
-
-    public void overridePreference(String key, boolean value) {
-        mLayoutTestsExecutor.overridePreference(key, value);
-    }
-
-    public void setAppCacheMaximumSize(long size) {
-        Log.i(LOG_TAG, "setAppCacheMaximumSize() called with: " + size);
-        android.webkit.WebStorageClassic.getInstance().setAppCacheMaximumSize(size);
-    }
-
-    public void setCanOpenWindows() {
-        mLayoutTestsExecutor.setCanOpenWindows();
-    }
-
-    public void setDatabaseQuota(long quota) {
-        /** TODO: Reset this before every test! */
-        Log.i(LOG_TAG, "setDatabaseQuota() called with: " + quota);
-        WebStorage.getInstance().setQuotaForOrigin(Uri.fromFile(new File("")).toString(),
-                quota);
-    }
-
-    public void setMockGeolocationPosition(double latitude, double longitude, double accuracy) {
-        Log.i(LOG_TAG, "setMockGeolocationPosition(): " + "latitude=" + latitude +
-                " longitude=" + longitude + " accuracy=" + accuracy);
-        mLayoutTestsExecutor.setMockGeolocationPosition(latitude, longitude, accuracy);
-    }
-
-    public void setMockGeolocationError(int code, String message) {
-        Log.i(LOG_TAG, "setMockGeolocationError(): " + "code=" + code + " message=" + message);
-        mLayoutTestsExecutor.setMockGeolocationError(code, message);
-    }
-
-    public void setGeolocationPermission(boolean allow) {
-        mLayoutTestsExecutor.setGeolocationPermission(allow);
-    }
-
-    public void setMockDeviceOrientation(boolean canProvideAlpha, double alpha,
-            boolean canProvideBeta, double beta, boolean canProvideGamma, double gamma) {
-        // Configuration is in WebKit, so stay on WebCore thread, but go via LayoutTestsExecutor
-        // as we need access to the Webview.
-        Log.i(LOG_TAG, "setMockDeviceOrientation(" + canProvideAlpha +
-                ", " + alpha + ", " + canProvideBeta + ", " + beta + ", " + canProvideGamma +
-                ", " + gamma + ")");
-        mLayoutTestsExecutor.setMockDeviceOrientation(
-                canProvideAlpha, alpha, canProvideBeta, beta, canProvideGamma, gamma);
-    }
-
-    public void setXSSAuditorEnabled(boolean flag) {
-        mLayoutTestsExecutor.setXSSAuditorEnabled(flag);
-    }
-
-    public void waitUntilDone() {
-        mLayoutTestsExecutor.waitUntilDone();
-    }
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestsExecutor.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestsExecutor.java
deleted file mode 100644
index 25ac700..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/LayoutTestsExecutor.java
+++ /dev/null
@@ -1,732 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import android.app.Activity;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.ServiceConnection;
-import android.net.http.SslError;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.os.Messenger;
-import android.os.PowerManager;
-import android.os.PowerManager.WakeLock;
-import android.os.Process;
-import android.os.RemoteException;
-import android.util.Log;
-import android.view.Window;
-import android.webkit.ConsoleMessage;
-import android.webkit.GeolocationPermissions;
-import android.webkit.HttpAuthHandler;
-import android.webkit.JsPromptResult;
-import android.webkit.JsResult;
-import android.webkit.SslErrorHandler;
-import android.webkit.WebChromeClient;
-import android.webkit.WebSettings;
-import android.webkit.WebSettingsClassic;
-import android.webkit.WebStorage;
-import android.webkit.WebStorage.QuotaUpdater;
-import android.webkit.WebView;
-import android.webkit.WebViewClassic;
-import android.webkit.WebViewClient;
-
-import java.lang.Thread.UncaughtExceptionHandler;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-/**
- * This activity executes the test. It contains WebView and logic of LayoutTestController
- * functions. It runs in a separate process and sends the results of running the test
- * to ManagerService. The reason why is to handle crashing (test that crashes brings down
- * whole process with it).
- */
-public class LayoutTestsExecutor extends Activity {
-
-    private enum CurrentState {
-        IDLE,
-        RENDERING_PAGE,
-        WAITING_FOR_ASYNCHRONOUS_TEST,
-        OBTAINING_RESULT;
-
-        public boolean isRunningState() {
-            return this == CurrentState.RENDERING_PAGE ||
-                    this == CurrentState.WAITING_FOR_ASYNCHRONOUS_TEST;
-        }
-    }
-
-    private static final String LOG_TAG = "LayoutTestsExecutor";
-
-    public static final String EXTRA_TESTS_FILE = "TestsList";
-    public static final String EXTRA_TEST_INDEX = "TestIndex";
-
-    private static final int MSG_ACTUAL_RESULT_OBTAINED = 0;
-    private static final int MSG_TEST_TIMED_OUT = 1;
-
-    private static final int DEFAULT_TIME_OUT_MS = 15 * 1000;
-
-    /** A list of tests that remain to run since last crash */
-    private List<String> mTestsList;
-
-    /**
-     * This is a number of currently running test. It is 0-based and doesn't reset after
-     * the crash. Initial index is passed to LayoutTestsExecuter in the intent that starts
-     * it.
-     */
-    private int mCurrentTestIndex;
-
-    /** The total number of tests to run, doesn't reset after crash */
-    private int mTotalTestCount;
-
-    private WebView mCurrentWebView;
-    private String mCurrentTestRelativePath;
-    private String mCurrentTestUri;
-    private CurrentState mCurrentState = CurrentState.IDLE;
-
-    private boolean mCurrentTestTimedOut;
-    private AbstractResult mCurrentResult;
-    private AdditionalTextOutput mCurrentAdditionalTextOutput;
-
-    private LayoutTestController mLayoutTestController = new LayoutTestController(this);
-    private boolean mCanOpenWindows;
-    private boolean mDumpDatabaseCallbacks;
-
-    private EventSender mEventSender = new EventSender();
-
-    private WakeLock mScreenDimLock;
-
-    /** COMMUNICATION WITH ManagerService */
-
-    private Messenger mManagerServiceMessenger;
-
-    private ServiceConnection mServiceConnection = new ServiceConnection() {
-
-        @Override
-        public void onServiceConnected(ComponentName name, IBinder service) {
-            mManagerServiceMessenger = new Messenger(service);
-            startTests();
-        }
-
-        @Override
-        public void onServiceDisconnected(ComponentName name) {
-            /** TODO */
-        }
-    };
-
-    private final Handler mResultHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MSG_ACTUAL_RESULT_OBTAINED:
-                    onActualResultsObtained();
-                    break;
-
-                case MSG_TEST_TIMED_OUT:
-                    onTestTimedOut();
-                    break;
-
-                default:
-                    break;
-            }
-        }
-    };
-
-    /** WEBVIEW CONFIGURATION */
-
-    private WebViewClient mWebViewClient = new WebViewClient() {
-        @Override
-        public void onPageFinished(WebView view, String url) {
-            /** Some tests fire up many page loads, we don't want to detect them */
-            if (!url.equals(mCurrentTestUri)) {
-                return;
-            }
-
-            if (mCurrentState == CurrentState.RENDERING_PAGE) {
-                onTestFinished();
-            }
-        }
-
-         @Override
-         public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler,
-                 String host, String realm) {
-             if (handler.useHttpAuthUsernamePassword() && view != null) {
-                 String[] credentials = view.getHttpAuthUsernamePassword(host, realm);
-                 if (credentials != null && credentials.length == 2) {
-                     handler.proceed(credentials[0], credentials[1]);
-                     return;
-                 }
-             }
-             handler.cancel();
-         }
-
-         @Override
-         public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
-             // We ignore SSL errors. In particular, the certificate used by the LayoutTests server
-             // produces an error as it lacks a CN field.
-             handler.proceed();
-         }
-    };
-
-    private WebChromeClient mWebChromeClient = new WebChromeClient() {
-        @Override
-        public void onExceededDatabaseQuota(String url, String databaseIdentifier,
-                long currentQuota, long estimatedSize, long totalUsedQuota,
-                QuotaUpdater quotaUpdater) {
-            /** TODO: This should be recorded as part of the text result */
-            /** TODO: The quota should also probably be reset somehow for every test? */
-            if (mDumpDatabaseCallbacks) {
-                getCurrentAdditionalTextOutput().appendExceededDbQuotaMessage(url,
-                        databaseIdentifier);
-            }
-            quotaUpdater.updateQuota(currentQuota + 5 * 1024 * 1024);
-        }
-
-        @Override
-        public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
-            getCurrentAdditionalTextOutput().appendJsAlert(message);
-            result.confirm();
-            return true;
-        }
-
-        @Override
-        public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
-            getCurrentAdditionalTextOutput().appendJsConfirm(message);
-            result.confirm();
-            return true;
-        }
-
-        @Override
-        public boolean onJsPrompt(WebView view, String url, String message, String defaultValue,
-                JsPromptResult result) {
-            getCurrentAdditionalTextOutput().appendJsPrompt(message, defaultValue);
-            result.confirm();
-            return true;
-        }
-
-        @Override
-        public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
-            getCurrentAdditionalTextOutput().appendConsoleMessage(consoleMessage);
-            return true;
-        }
-
-        @Override
-        public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture,
-                Message resultMsg) {
-            WebView.WebViewTransport transport = (WebView.WebViewTransport)resultMsg.obj;
-            /** By default windows cannot be opened, so just send null back. */
-            WebView newWindowWebView = null;
-
-            if (mCanOpenWindows) {
-                /**
-                 * We never display the new window, just create the view and allow it's content to
-                 * execute and be recorded by the executor.
-                 */
-                newWindowWebView = createWebViewWithJavascriptInterfaces();
-                setupWebView(newWindowWebView);
-            }
-
-            transport.setWebView(newWindowWebView);
-            resultMsg.sendToTarget();
-            return true;
-        }
-
-        @Override
-        public void onGeolocationPermissionsShowPrompt(String origin,
-                GeolocationPermissions.Callback callback) {
-            throw new RuntimeException(
-                    "The WebCore mock used by DRT should bypass the usual permissions flow.");
-        }
-    };
-
-    /** IMPLEMENTATION */
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        /**
-         * It detects the crash by catching all the uncaught exceptions. However, we
-         * still have to kill the process, because after catching the exception the
-         * activity remains in a strange state, where intents don't revive it.
-         * However, we send the message to the service to speed up the rebooting
-         * (we don't have to wait for time-out to kick in).
-         */
-        Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
-            @Override
-            public void uncaughtException(Thread thread, Throwable e) {
-                Log.w(LOG_TAG,
-                        "onTestCrashed(): " + mCurrentTestRelativePath + " thread=" + thread, e);
-
-                try {
-                    Message serviceMsg =
-                            Message.obtain(null, ManagerService.MSG_CURRENT_TEST_CRASHED);
-
-                    mManagerServiceMessenger.send(serviceMsg);
-                } catch (RemoteException e2) {
-                    Log.e(LOG_TAG, "mCurrentTestRelativePath=" + mCurrentTestRelativePath, e2);
-                }
-
-                Process.killProcess(Process.myPid());
-            }
-        });
-
-        requestWindowFeature(Window.FEATURE_PROGRESS);
-
-        Intent intent = getIntent();
-        mTestsList = FsUtils.loadTestListFromStorage(intent.getStringExtra(EXTRA_TESTS_FILE));
-        mCurrentTestIndex = intent.getIntExtra(EXTRA_TEST_INDEX, -1);
-        mTotalTestCount = mCurrentTestIndex + mTestsList.size();
-
-        PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
-        mScreenDimLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK
-                | PowerManager.ON_AFTER_RELEASE, "WakeLock in LayoutTester");
-        mScreenDimLock.acquire();
-
-        bindService(new Intent(this, ManagerService.class), mServiceConnection,
-                Context.BIND_AUTO_CREATE);
-    }
-
-    private void reset() {
-        WebView previousWebView = mCurrentWebView;
-
-        resetLayoutTestController();
-
-        mCurrentTestTimedOut = false;
-        mCurrentResult = null;
-        mCurrentAdditionalTextOutput = null;
-
-        mCurrentWebView = createWebViewWithJavascriptInterfaces();
-        // When we create the first WebView, we need to pause to wait for the WebView thread to spin
-        // and up and for it to register its message handlers.
-        if (previousWebView == null) {
-            try {
-                Thread.currentThread().sleep(1000);
-            } catch (Exception e) {}
-        }
-        setupWebView(mCurrentWebView);
-
-        mEventSender.reset(mCurrentWebView);
-
-        setContentView(mCurrentWebView);
-        if (previousWebView != null) {
-            Log.d(LOG_TAG + "::reset", "previousWebView != null");
-            previousWebView.destroy();
-        }
-    }
-
-    private static class WebViewWithJavascriptInterfaces extends WebView {
-        public WebViewWithJavascriptInterfaces(
-                Context context, Map<String, Object> javascriptInterfaces) {
-            super(context,
-                  null, // attribute set
-                  0, // default style resource ID
-                  javascriptInterfaces,
-                  false); // is private browsing
-        }
-    }
-    private WebView createWebViewWithJavascriptInterfaces() {
-        Map<String, Object> javascriptInterfaces = new HashMap<String, Object>();
-        javascriptInterfaces.put("layoutTestController", mLayoutTestController);
-        javascriptInterfaces.put("eventSender", mEventSender);
-        return new WebViewWithJavascriptInterfaces(this, javascriptInterfaces);
-    }
-
-    private void setupWebView(WebView webView) {
-        webView.setWebViewClient(mWebViewClient);
-        webView.setWebChromeClient(mWebChromeClient);
-
-        /**
-         * Setting a touch interval of -1 effectively disables the optimisation in WebView
-         * that stops repeated touch events flooding WebCore. The Event Sender only sends a
-         * single event rather than a stream of events (like what would generally happen in
-         * a real use of touch events in a WebView)  and so if the WebView drops the event,
-         * the test will fail as the test expects one callback for every touch it synthesizes.
-         */
-        WebViewClassic webViewClassic = WebViewClassic.fromWebView(webView);
-        webViewClassic.setTouchInterval(-1);
-
-        webViewClassic.clearCache(true);
-
-        WebSettingsClassic webViewSettings = webViewClassic.getSettings();
-        webViewSettings.setAppCacheEnabled(true);
-        webViewSettings.setAppCachePath(getApplicationContext().getCacheDir().getPath());
-        // Use of larger values causes unexplained AppCache database corruption.
-        // TODO: Investigate what's really going on here.
-        webViewSettings.setAppCacheMaxSize(100 * 1024 * 1024);
-        webViewSettings.setJavaScriptEnabled(true);
-        webViewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
-        webViewSettings.setSupportMultipleWindows(true);
-        webViewSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
-        webViewSettings.setDatabaseEnabled(true);
-        webViewSettings.setDatabasePath(getDir("databases", 0).getAbsolutePath());
-        webViewSettings.setDomStorageEnabled(true);
-        webViewSettings.setWorkersEnabled(false);
-        webViewSettings.setXSSAuditorEnabled(false);
-        webViewSettings.setPageCacheCapacity(0);
-
-        // This is asynchronous, but it gets processed by WebCore before it starts loading pages.
-        WebViewClassic.fromWebView(mCurrentWebView).setUseMockGeolocation();
-        WebViewClassic.fromWebView(mCurrentWebView).setUseMockDeviceOrientation();
-
-        // Must do this after setting the AppCache path.
-        WebStorage.getInstance().deleteAllData();
-    }
-
-    private void startTests() {
-        // This is called when the tests are started and after each crash.
-        // We only send the reset message in the former case.
-        if (mCurrentTestIndex <= 0) {
-            sendResetMessage();
-        }
-        if (mCurrentTestIndex == 0) {
-            sendFirstTestMessage();
-        }
-
-        runNextTest();
-    }
-
-    private void sendResetMessage() {
-        try {
-            Message serviceMsg = Message.obtain(null, ManagerService.MSG_RESET);
-            mManagerServiceMessenger.send(serviceMsg);
-        } catch (RemoteException e) {
-            Log.e(LOG_TAG, "Error sending message to manager service:", e);
-        }
-    }
-
-    private void sendFirstTestMessage() {
-        try {
-            Message serviceMsg = Message.obtain(null, ManagerService.MSG_FIRST_TEST);
-
-            Bundle bundle = new Bundle();
-            bundle.putString("firstTest", mTestsList.get(0));
-            bundle.putInt("index", mCurrentTestIndex);
-
-            serviceMsg.setData(bundle);
-            mManagerServiceMessenger.send(serviceMsg);
-        } catch (RemoteException e) {
-            Log.e(LOG_TAG, "Error sending message to manager service:", e);
-        }
-    }
-
-    private void runNextTest() {
-        assert mCurrentState == CurrentState.IDLE : "mCurrentState = " + mCurrentState.name();
-
-        if (mTestsList.isEmpty()) {
-            onAllTestsFinished();
-            return;
-        }
-
-        mCurrentTestRelativePath = mTestsList.remove(0);
-
-        Log.i(LOG_TAG, "runNextTest(): Start: " + mCurrentTestRelativePath +
-                " (" + mCurrentTestIndex + ")");
-
-        mCurrentTestUri = FileFilter.getUrl(mCurrentTestRelativePath, true).toString();
-
-        reset();
-
-        /** Start time-out countdown and the test */
-        mCurrentState = CurrentState.RENDERING_PAGE;
-        mResultHandler.sendEmptyMessageDelayed(MSG_TEST_TIMED_OUT, DEFAULT_TIME_OUT_MS);
-        mCurrentWebView.loadUrl(mCurrentTestUri);
-    }
-
-    private void onTestTimedOut() {
-        assert mCurrentState.isRunningState() : "mCurrentState = " + mCurrentState.name();
-
-        Log.w(LOG_TAG, "onTestTimedOut(): " + mCurrentTestRelativePath);
-        mCurrentTestTimedOut = true;
-
-        /**
-         * While it is theoretically possible that the test times out because
-         * of webview becoming unresponsive, it is very unlikely. Therefore it's
-         * assumed that obtaining results (that calls various webview methods)
-         * will not itself hang.
-         */
-        obtainActualResultsFromWebView();
-    }
-
-    private void onTestFinished() {
-        assert mCurrentState.isRunningState() : "mCurrentState = " + mCurrentState.name();
-
-        Log.i(LOG_TAG, "onTestFinished(): " + mCurrentTestRelativePath);
-        mResultHandler.removeMessages(MSG_TEST_TIMED_OUT);
-        obtainActualResultsFromWebView();
-    }
-
-    private void obtainActualResultsFromWebView() {
-        /**
-         * If the result has not been set by the time the test finishes we create
-         * a default type of result.
-         */
-        if (mCurrentResult == null) {
-            /** TODO: Default type should be RenderTreeResult. We don't support it now. */
-            mCurrentResult = new TextResult(mCurrentTestRelativePath);
-        }
-
-        mCurrentState = CurrentState.OBTAINING_RESULT;
-
-        if (mCurrentTestTimedOut) {
-            mCurrentResult.setDidTimeOut();
-        }
-        mCurrentResult.obtainActualResults(mCurrentWebView,
-                mResultHandler.obtainMessage(MSG_ACTUAL_RESULT_OBTAINED));
-    }
-
-    private void onActualResultsObtained() {
-        assert mCurrentState == CurrentState.OBTAINING_RESULT
-                : "mCurrentState = " + mCurrentState.name();
-
-        Log.i(LOG_TAG, "onActualResultsObtained(): " + mCurrentTestRelativePath);
-        mCurrentState = CurrentState.IDLE;
-
-        reportResultToService();
-        mCurrentTestIndex++;
-        updateProgressBar();
-        runNextTest();
-    }
-
-    private void reportResultToService() {
-        if (mCurrentAdditionalTextOutput != null) {
-            mCurrentResult.setAdditionalTextOutputString(mCurrentAdditionalTextOutput.toString());
-        }
-
-        try {
-            Message serviceMsg =
-                    Message.obtain(null, ManagerService.MSG_PROCESS_ACTUAL_RESULTS);
-
-            Bundle bundle = mCurrentResult.getBundle();
-            bundle.putInt("testIndex", mCurrentTestIndex);
-            if (!mTestsList.isEmpty()) {
-                bundle.putString("nextTest", mTestsList.get(0));
-            }
-
-            serviceMsg.setData(bundle);
-            mManagerServiceMessenger.send(serviceMsg);
-        } catch (RemoteException e) {
-            Log.e(LOG_TAG, "mCurrentTestRelativePath=" + mCurrentTestRelativePath, e);
-        }
-    }
-
-    private void updateProgressBar() {
-        getWindow().setFeatureInt(Window.FEATURE_PROGRESS,
-                mCurrentTestIndex * Window.PROGRESS_END / mTotalTestCount);
-        setTitle(mCurrentTestIndex * 100 / mTotalTestCount + "% " +
-                "(" + mCurrentTestIndex + "/" + mTotalTestCount + ")");
-    }
-
-    private void onAllTestsFinished() {
-        mScreenDimLock.release();
-
-        try {
-            Message serviceMsg =
-                    Message.obtain(null, ManagerService.MSG_ALL_TESTS_FINISHED);
-            mManagerServiceMessenger.send(serviceMsg);
-        } catch (RemoteException e) {
-            Log.e(LOG_TAG, "mCurrentTestRelativePath=" + mCurrentTestRelativePath, e);
-        }
-
-        unbindService(mServiceConnection);
-    }
-
-    private AdditionalTextOutput getCurrentAdditionalTextOutput() {
-        if (mCurrentAdditionalTextOutput == null) {
-            mCurrentAdditionalTextOutput = new AdditionalTextOutput();
-        }
-        return mCurrentAdditionalTextOutput;
-    }
-
-    /** LAYOUT TEST CONTROLLER */
-
-    private static final int MSG_WAIT_UNTIL_DONE = 0;
-    private static final int MSG_NOTIFY_DONE = 1;
-    private static final int MSG_DUMP_AS_TEXT = 2;
-    private static final int MSG_DUMP_CHILD_FRAMES_AS_TEXT = 3;
-    private static final int MSG_SET_CAN_OPEN_WINDOWS = 4;
-    private static final int MSG_DUMP_DATABASE_CALLBACKS = 5;
-    private static final int MSG_OVERRIDE_PREFERENCE = 6;
-    private static final int MSG_SET_XSS_AUDITOR_ENABLED = 7;
-
-    /** String constants for use with layoutTestController.overridePreference() */
-    private final String WEBKIT_OFFLINE_WEB_APPLICATION_CACHE_ENABLED =
-            "WebKitOfflineWebApplicationCacheEnabled";
-    private final String WEBKIT_USES_PAGE_CACHE_PREFERENCE_KEY = "WebKitUsesPageCachePreferenceKey";
-
-    Handler mLayoutTestControllerHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            assert mCurrentState.isRunningState() : "mCurrentState = " + mCurrentState.name();
-
-            switch (msg.what) {
-                case MSG_DUMP_AS_TEXT:
-                    if (mCurrentResult == null) {
-                        mCurrentResult = new TextResult(mCurrentTestRelativePath);
-                    }
-                    assert mCurrentResult instanceof TextResult
-                            : "mCurrentResult instanceof" + mCurrentResult.getClass().getName();
-                    break;
-
-                case MSG_DUMP_CHILD_FRAMES_AS_TEXT:
-                    /** If dumpAsText was not called we assume that the result should be text */
-                    if (mCurrentResult == null) {
-                        mCurrentResult = new TextResult(mCurrentTestRelativePath);
-                    }
-
-                    assert mCurrentResult instanceof TextResult
-                            : "mCurrentResult instanceof" + mCurrentResult.getClass().getName();
-
-                    ((TextResult)mCurrentResult).setDumpChildFramesAsText(true);
-                    break;
-
-                case MSG_DUMP_DATABASE_CALLBACKS:
-                    mDumpDatabaseCallbacks = true;
-                    break;
-
-                case MSG_NOTIFY_DONE:
-                    if (mCurrentState == CurrentState.WAITING_FOR_ASYNCHRONOUS_TEST) {
-                        onTestFinished();
-                    }
-                    break;
-
-                case MSG_OVERRIDE_PREFERENCE:
-                    /**
-                     * TODO: We should look up the correct WebView for the frame which
-                     * called the layoutTestController method. Currently, we just use the
-                     * WebView for the main frame. EventSender suffers from the same
-                     * problem.
-                     */
-                    String key = msg.getData().getString("key");
-                    boolean value = msg.getData().getBoolean("value");
-                    if (WEBKIT_OFFLINE_WEB_APPLICATION_CACHE_ENABLED.equals(key)) {
-                        WebViewClassic.fromWebView(mCurrentWebView).getSettings().
-                                setAppCacheEnabled(value);
-                    } else if (WEBKIT_USES_PAGE_CACHE_PREFERENCE_KEY.equals(key)) {
-                        // Cache the maximum possible number of pages.
-                        WebViewClassic.fromWebView(mCurrentWebView).getSettings().
-                                setPageCacheCapacity(Integer.MAX_VALUE);
-                    } else {
-                        Log.w(LOG_TAG, "LayoutTestController.overridePreference(): " +
-                              "Unsupported preference '" + key + "'");
-                    }
-                    break;
-
-                case MSG_SET_CAN_OPEN_WINDOWS:
-                    mCanOpenWindows = true;
-                    break;
-
-                case MSG_SET_XSS_AUDITOR_ENABLED:
-                    WebViewClassic.fromWebView(mCurrentWebView).getSettings().
-                            setXSSAuditorEnabled(msg.arg1 == 1);
-                    break;
-
-                case MSG_WAIT_UNTIL_DONE:
-                    mCurrentState = CurrentState.WAITING_FOR_ASYNCHRONOUS_TEST;
-                    break;
-
-                default:
-                    assert false : "msg.what=" + msg.what;
-                    break;
-            }
-        }
-    };
-
-    private void resetLayoutTestController() {
-        mCanOpenWindows = false;
-        mDumpDatabaseCallbacks = false;
-    }
-
-    public void dumpAsText(boolean enablePixelTest) {
-        Log.i(LOG_TAG, mCurrentTestRelativePath + ": dumpAsText(" + enablePixelTest + ") called");
-        /** TODO: Implement */
-        if (enablePixelTest) {
-            Log.w(LOG_TAG, "enablePixelTest not implemented, switching to false");
-        }
-        mLayoutTestControllerHandler.sendEmptyMessage(MSG_DUMP_AS_TEXT);
-    }
-
-    public void dumpChildFramesAsText() {
-        Log.i(LOG_TAG, mCurrentTestRelativePath + ": dumpChildFramesAsText() called");
-        mLayoutTestControllerHandler.sendEmptyMessage(MSG_DUMP_CHILD_FRAMES_AS_TEXT);
-    }
-
-    public void dumpDatabaseCallbacks() {
-        Log.i(LOG_TAG, mCurrentTestRelativePath + ": dumpDatabaseCallbacks() called");
-        mLayoutTestControllerHandler.sendEmptyMessage(MSG_DUMP_DATABASE_CALLBACKS);
-    }
-
-    public void notifyDone() {
-        Log.i(LOG_TAG, mCurrentTestRelativePath + ": notifyDone() called");
-        mLayoutTestControllerHandler.sendEmptyMessage(MSG_NOTIFY_DONE);
-    }
-
-    public void overridePreference(String key, boolean value) {
-        Log.i(LOG_TAG, mCurrentTestRelativePath + ": overridePreference(" + key + ", " + value +
-        ") called");
-        Message msg = mLayoutTestControllerHandler.obtainMessage(MSG_OVERRIDE_PREFERENCE);
-        msg.getData().putString("key", key);
-        msg.getData().putBoolean("value", value);
-        msg.sendToTarget();
-    }
-
-    public void setCanOpenWindows() {
-        Log.i(LOG_TAG, mCurrentTestRelativePath + ": setCanOpenWindows() called");
-        mLayoutTestControllerHandler.sendEmptyMessage(MSG_SET_CAN_OPEN_WINDOWS);
-    }
-
-    public void setMockGeolocationPosition(double latitude, double longitude, double accuracy) {
-        WebViewClassic.fromWebView(mCurrentWebView).setMockGeolocationPosition(latitude, longitude,
-                accuracy);
-    }
-
-    public void setMockGeolocationError(int code, String message) {
-        WebViewClassic.fromWebView(mCurrentWebView).setMockGeolocationError(code, message);
-    }
-
-    public void setGeolocationPermission(boolean allow) {
-        Log.i(LOG_TAG, mCurrentTestRelativePath + ": setGeolocationPermission(" + allow +
-                ") called");
-        WebViewClassic.fromWebView(mCurrentWebView).setMockGeolocationPermission(allow);
-    }
-
-    public void setMockDeviceOrientation(boolean canProvideAlpha, double alpha,
-            boolean canProvideBeta, double beta, boolean canProvideGamma, double gamma) {
-        Log.i(LOG_TAG, mCurrentTestRelativePath + ": setMockDeviceOrientation(" + canProvideAlpha +
-                ", " + alpha + ", " + canProvideBeta + ", " + beta + ", " + canProvideGamma +
-                ", " + gamma + ")");
-        WebViewClassic.fromWebView(mCurrentWebView).setMockDeviceOrientation(canProvideAlpha,
-                alpha, canProvideBeta, beta, canProvideGamma, gamma);
-    }
-
-    public void setXSSAuditorEnabled(boolean flag) {
-        Log.i(LOG_TAG, mCurrentTestRelativePath + ": setXSSAuditorEnabled(" + flag + ") called");
-        Message msg = mLayoutTestControllerHandler.obtainMessage(MSG_SET_XSS_AUDITOR_ENABLED);
-        msg.arg1 = flag ? 1 : 0;
-        msg.sendToTarget();
-    }
-
-    public void waitUntilDone() {
-        Log.i(LOG_TAG, mCurrentTestRelativePath + ": waitUntilDone() called");
-        mLayoutTestControllerHandler.sendEmptyMessage(MSG_WAIT_UNTIL_DONE);
-    }
-
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/ManagerService.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/ManagerService.java
deleted file mode 100644
index 4783cc7..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/ManagerService.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import android.app.Service;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Environment;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.os.Messenger;
-import android.util.Log;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A service that handles managing the results of tests, informing of crashes, generating
- * summaries, etc.
- */
-public class ManagerService extends Service {
-
-    private static final String LOG_TAG = "ManagerService";
-
-    private static final int MSG_CRASH_TIMEOUT_EXPIRED = 0;
-    private static final int MSG_SUMMARIZER_DONE = 1;
-
-    private static final int CRASH_TIMEOUT_MS = 20 * 1000;
-
-    /** TODO: make it a setting */
-    static final String RESULTS_ROOT_DIR_PATH =
-            Environment.getExternalStorageDirectory() + File.separator + "layout-test-results";
-
-    /** TODO: Make it a setting */
-    private static final List<String> EXPECTED_RESULT_LOCATION_RELATIVE_DIR_PREFIXES =
-            new ArrayList<String>(3);
-    {
-        EXPECTED_RESULT_LOCATION_RELATIVE_DIR_PREFIXES.add("platform" + File.separator +
-                "android-v8" + File.separator);
-        EXPECTED_RESULT_LOCATION_RELATIVE_DIR_PREFIXES.add("platform" + File.separator +
-                "android" + File.separator);
-        EXPECTED_RESULT_LOCATION_RELATIVE_DIR_PREFIXES.add("");
-    }
-
-    /** TODO: Make these settings */
-    private static final String TEXT_RESULT_EXTENSION = "txt";
-    private static final String IMAGE_RESULT_EXTENSION = "png";
-
-    static final int MSG_PROCESS_ACTUAL_RESULTS = 0;
-    static final int MSG_ALL_TESTS_FINISHED = 1;
-    static final int MSG_FIRST_TEST = 2;
-    static final int MSG_CURRENT_TEST_CRASHED = 3;
-    static final int MSG_RESET = 4;
-
-    /**
-     * This handler is purely for IPC. It is used to create mMessenger
-     * that generates a binder returned in onBind method.
-     */
-    private Handler mIncomingHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MSG_RESET:
-                    mSummarizer.reset();
-                    break;
-
-                case MSG_FIRST_TEST:
-                    Bundle bundle = msg.getData();
-                    ensureNextTestSetup(bundle.getString("firstTest"), bundle.getInt("index"));
-                    break;
-
-                case MSG_PROCESS_ACTUAL_RESULTS:
-                    Log.d(LOG_TAG,"mIncomingHandler: " + msg.getData().getString("relativePath"));
-                    onActualResultsObtained(msg.getData());
-                    break;
-
-                case MSG_CURRENT_TEST_CRASHED:
-                    mInternalMessagesHandler.removeMessages(MSG_CRASH_TIMEOUT_EXPIRED);
-                    onTestCrashed();
-                    break;
-
-                case MSG_ALL_TESTS_FINISHED:
-                    /** We run it in a separate thread to avoid ANR */
-                    new Thread() {
-                        @Override
-                        public void run() {
-                            mSummarizer.setTestsRelativePath(mAllTestsRelativePath);
-                            Message msg = Message.obtain(mInternalMessagesHandler,
-                                    MSG_SUMMARIZER_DONE);
-                            mSummarizer.summarize(msg);
-                        }
-                    }.start();
-            }
-        }
-    };
-
-    private Messenger mMessenger = new Messenger(mIncomingHandler);
-
-    private Handler mInternalMessagesHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MSG_CRASH_TIMEOUT_EXPIRED:
-                    onTestCrashed();
-                    break;
-
-                case MSG_SUMMARIZER_DONE:
-                    Intent intent = new Intent(ManagerService.this, TestsListActivity.class);
-                    intent.setAction(Intent.ACTION_SHUTDOWN);
-                    /** This flag is needed because we send the intent from the service */
-                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                    startActivity(intent);
-                    break;
-            }
-        }
-    };
-
-    private Summarizer mSummarizer;
-
-    private String mCurrentlyRunningTest;
-    private int mCurrentlyRunningTestIndex;
-
-    /**
-     * These are implementation details of getExpectedResultPath() used to reduce the number
-     * of requests required to the host server.
-     */
-    private String mLastExpectedResultPathRequested;
-    private String mLastExpectedResultPathFetched;
-
-    private String mAllTestsRelativePath;
-
-    @Override
-    public void onCreate() {
-        super.onCreate();
-
-        mSummarizer = new Summarizer(RESULTS_ROOT_DIR_PATH, getApplicationContext());
-    }
-
-    @Override
-    public int onStartCommand(Intent intent, int flags, int startId) {
-        mAllTestsRelativePath = intent.getStringExtra("path");
-        assert mAllTestsRelativePath != null;
-        return START_STICKY;
-    }
-
-    @Override
-    public IBinder onBind(Intent intent) {
-        return mMessenger.getBinder();
-    }
-
-    private void onActualResultsObtained(Bundle bundle) {
-        mInternalMessagesHandler.removeMessages(MSG_CRASH_TIMEOUT_EXPIRED);
-        ensureNextTestSetup(bundle.getString("nextTest"), bundle.getInt("testIndex") + 1);
-
-        AbstractResult results =
-                AbstractResult.TestType.valueOf(bundle.getString("type")).createResult(bundle);
-
-        Log.i(LOG_TAG, "onActualResultObtained: " + results.getRelativePath());
-        handleResults(results);
-    }
-
-    private void ensureNextTestSetup(String nextTest, int index) {
-        if (nextTest == null) {
-            Log.w(LOG_TAG, "ensureNextTestSetup(): nextTest=null");
-            return;
-        }
-
-        mCurrentlyRunningTest = nextTest;
-        mCurrentlyRunningTestIndex = index;
-        mInternalMessagesHandler.sendEmptyMessageDelayed(MSG_CRASH_TIMEOUT_EXPIRED, CRASH_TIMEOUT_MS);
-    }
-
-    /**
-     * This sends an intent to TestsListActivity to restart LayoutTestsExecutor.
-     * The more detailed description of the flow is in the comment of onNewIntent
-     * method in TestsListActivity.
-     */
-    private void onTestCrashed() {
-        handleResults(new CrashedDummyResult(mCurrentlyRunningTest));
-
-        Log.w(LOG_TAG, "onTestCrashed(): " + mCurrentlyRunningTest +
-                " (" + mCurrentlyRunningTestIndex + ")");
-
-        Intent intent = new Intent(this, TestsListActivity.class);
-        intent.setAction(Intent.ACTION_REBOOT);
-        /** This flag is needed because we send the intent from the service */
-        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        intent.putExtra("crashedTestIndex", mCurrentlyRunningTestIndex);
-        startActivity(intent);
-    }
-
-    private void handleResults(AbstractResult results) {
-        String relativePath = results.getRelativePath();
-        results.setExpectedTextResult(getExpectedTextResult(relativePath));
-        results.setExpectedTextResultPath(getExpectedTextResultPath(relativePath));
-        results.setExpectedImageResult(getExpectedImageResult(relativePath));
-        results.setExpectedImageResultPath(getExpectedImageResultPath(relativePath));
-
-        dumpActualTextResult(results);
-        dumpActualImageResult(results);
-
-        mSummarizer.appendTest(results);
-    }
-
-    private void dumpActualTextResult(AbstractResult result) {
-        String testPath = result.getRelativePath();
-        String actualTextResult = result.getActualTextResult();
-        if (actualTextResult == null) {
-            return;
-        }
-
-        String resultPath = FileFilter.setPathEnding(testPath, "-actual." + TEXT_RESULT_EXTENSION);
-        FsUtils.writeDataToStorage(new File(RESULTS_ROOT_DIR_PATH, resultPath),
-                actualTextResult.getBytes(), false);
-    }
-
-    private void dumpActualImageResult(AbstractResult result) {
-        String testPath = result.getRelativePath();
-        byte[] actualImageResult = result.getActualImageResult();
-        if (actualImageResult == null) {
-            return;
-        }
-
-        String resultPath = FileFilter.setPathEnding(testPath,
-                "-actual." + IMAGE_RESULT_EXTENSION);
-        FsUtils.writeDataToStorage(new File(RESULTS_ROOT_DIR_PATH, resultPath),
-                actualImageResult, false);
-    }
-
-    public String getExpectedTextResult(String relativePath) {
-        byte[] result = getExpectedResult(relativePath, TEXT_RESULT_EXTENSION);
-        if (result != null) {
-            return new String(result);
-        }
-        return null;
-    }
-
-    public byte[] getExpectedImageResult(String relativePath) {
-        return getExpectedResult(relativePath, IMAGE_RESULT_EXTENSION);
-    }
-
-    private byte[] getExpectedResult(String relativePath, String extension) {
-        String originalRelativePath =
-                FileFilter.setPathEnding(relativePath, "-expected." + extension);
-        mLastExpectedResultPathRequested = originalRelativePath;
-
-        byte[] bytes = null;
-        List<String> locations = EXPECTED_RESULT_LOCATION_RELATIVE_DIR_PREFIXES;
-
-        int size = EXPECTED_RESULT_LOCATION_RELATIVE_DIR_PREFIXES.size();
-        for (int i = 0; bytes == null && i < size; i++) {
-            relativePath = locations.get(i) + originalRelativePath;
-            bytes = FsUtils.readDataFromUrl(FileFilter.getUrl(relativePath, false));
-        }
-
-        mLastExpectedResultPathFetched = bytes == null ? null : relativePath;
-        return bytes;
-    }
-
-    private String getExpectedTextResultPath(String relativePath) {
-        return getExpectedResultPath(relativePath, TEXT_RESULT_EXTENSION);
-    }
-
-    private String getExpectedImageResultPath(String relativePath) {
-        return getExpectedResultPath(relativePath, IMAGE_RESULT_EXTENSION);
-    }
-
-    private String getExpectedResultPath(String relativePath, String extension) {
-        String originalRelativePath =
-            FileFilter.setPathEnding(relativePath, "-expected." + extension);
-        if (!originalRelativePath.equals(mLastExpectedResultPathRequested)) {
-            getExpectedResult(relativePath, extension);
-        }
-
-        return mLastExpectedResultPathFetched;
-    }
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/Summarizer.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/Summarizer.java
deleted file mode 100644
index bae8e6b..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/Summarizer.java
+++ /dev/null
@@ -1,578 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import android.content.Context;
-import android.content.res.AssetManager;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.database.Cursor;
-import android.os.Build;
-import android.os.Message;
-import android.util.DisplayMetrics;
-import android.util.Log;
-
-import com.android.dumprendertree2.forwarder.ForwarderManager;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URL;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * A class that collects information about tests that ran and can create HTML
- * files with summaries and easy navigation.
- */
-public class Summarizer {
-
-    private static final String LOG_TAG = "Summarizer";
-
-    private static final String CSS =
-            "<style type=\"text/css\">" +
-            "* {" +
-            "       font-family: Verdana;" +
-            "       border: 0;" +
-            "       margin: 0;" +
-            "       padding: 0;}" +
-            "body {" +
-            "       margin: 10px;}" +
-            "h1 {" +
-            "       font-size: 24px;" +
-            "       margin: 4px 0 4px 0;}" +
-            "h2 {" +
-            "       font-size:18px;" +
-            "       text-transform: uppercase;" +
-            "       margin: 20px 0 3px 0;}" +
-            "h3, h3 a {" +
-            "       font-size: 14px;" +
-            "       color: black;" +
-            "       text-decoration: none;" +
-            "       margin-top: 4px;" +
-            "       margin-bottom: 2px;}" +
-            "h3 a span.path {" +
-            "       text-decoration: underline;}" +
-            "h3 span.tri {" +
-            "       text-decoration: none;" +
-            "       float: left;" +
-            "       width: 20px;}" +
-            "h3 span.sqr {" +
-            "       text-decoration: none;" +
-            "       float: left;" +
-            "       width: 20px;}" +
-            "h3 span.sqr_pass {" +
-            "       color: #8ee100;}" +
-            "h3 span.sqr_fail {" +
-            "       color: #c30000;}" +
-            "span.source {" +
-            "       display: block;" +
-            "       font-size: 10px;" +
-            "       color: #888;" +
-            "       margin-left: 20px;" +
-            "       margin-bottom: 1px;}" +
-            "span.source a {" +
-            "       font-size: 10px;" +
-            "       color: #888;}" +
-            "h3 img {" +
-            "       width: 8px;" +
-            "       margin-right: 4px;}" +
-            "div.diff {" +
-            "       margin-bottom: 25px;}" +
-            "div.diff a {" +
-            "       font-size: 12px;" +
-            "       color: #888;}" +
-            "table.visual_diff {" +
-            "       border-bottom: 0px solid;" +
-            "       border-collapse: collapse;" +
-            "       width: 100%;" +
-            "       margin-bottom: 2px;}" +
-            "table.visual_diff tr.headers td {" +
-            "       border-bottom: 1px solid;" +
-            "       border-top: 0;" +
-            "       padding-bottom: 3px;}" +
-            "table.visual_diff tr.results td {" +
-            "       border-top: 1px dashed;" +
-            "       border-right: 1px solid;" +
-            "       font-size: 15px;" +
-            "       vertical-align: top;}" +
-            "table.visual_diff tr.results td.line_count {" +
-            "       background-color:#aaa;" +
-            "       min-width:20px;" +
-            "       text-align: right;" +
-            "       border-right: 1px solid;" +
-            "       border-left: 1px solid;" +
-            "       padding: 2px 1px 2px 0px;}" +
-            "table.visual_diff tr.results td.line {" +
-            "       padding: 2px 0px 2px 4px;" +
-            "       border-right: 1px solid;" +
-            "       width: 49.8%;}" +
-            "table.visual_diff tr.footers td {" +
-            "       border-top: 1px solid;" +
-            "       border-bottom: 0;}" +
-            "table.visual_diff tr td.space {" +
-            "       border: 0;" +
-            "       width: 0.4%}" +
-            "div.space {" +
-            "       margin-top:4px;}" +
-            "span.eql {" +
-            "       background-color: #f3f3f3;}" +
-            "span.del {" +
-            "       background-color: #ff8888; }" +
-            "span.ins {" +
-            "       background-color: #88ff88; }" +
-            "table.summary {" +
-            "       border: 1px solid black;" +
-            "       margin-top: 20px;}" +
-            "table.summary td {" +
-            "       padding: 3px;}" +
-            "span.listItem {" +
-            "       font-size: 11px;" +
-            "       font-weight: normal;" +
-            "       text-transform: uppercase;" +
-            "       padding: 3px;" +
-            "       -webkit-border-radius: 4px;}" +
-            "span." + AbstractResult.ResultCode.RESULTS_DIFFER.name() + "{" +
-            "       background-color: #ccc;" +
-            "       color: black;}" +
-            "span." + AbstractResult.ResultCode.NO_EXPECTED_RESULT.name() + "{" +
-            "       background-color: #a700e4;" +
-            "       color: #fff;}" +
-            "span.timed_out {" +
-            "       background-color: #f3cb00;" +
-            "       color: black;}" +
-            "span.crashed {" +
-            "       background-color: #c30000;" +
-            "       color: #fff;}" +
-            "span.noLtc {" +
-            "       background-color: #944000;" +
-            "       color: #fff;}" +
-            "span.noEventSender {" +
-            "       background-color: #815600;" +
-            "       color: #fff;}" +
-            "</style>";
-
-    private static final String SCRIPT =
-            "<script type=\"text/javascript\">" +
-            "    function toggleDisplay(id) {" +
-            "        element = document.getElementById(id);" +
-            "        triangle = document.getElementById('tri.' + id);" +
-            "        if (element.style.display == 'none') {" +
-            "            element.style.display = 'inline';" +
-            "            triangle.innerHTML = '&#x25bc; ';" +
-            "        } else {" +
-            "            element.style.display = 'none';" +
-            "            triangle.innerHTML = '&#x25b6; ';" +
-            "        }" +
-            "    }" +
-            "</script>";
-
-    /** TODO: Make it a setting */
-    private static final String HTML_DETAILS_RELATIVE_PATH = "details.html";
-    private static final String TXT_SUMMARY_RELATIVE_PATH = "summary.txt";
-
-    private static final int RESULTS_PER_DUMP = 500;
-    private static final int RESULTS_PER_DB_ACCESS = 50;
-
-    private int mCrashedTestsCount = 0;
-    private List<AbstractResult> mUnexpectedFailures = new ArrayList<AbstractResult>();
-    private List<AbstractResult> mExpectedFailures = new ArrayList<AbstractResult>();
-    private List<AbstractResult> mExpectedPasses = new ArrayList<AbstractResult>();
-    private List<AbstractResult> mUnexpectedPasses = new ArrayList<AbstractResult>();
-
-    private Cursor mUnexpectedFailuresCursor;
-    private Cursor mExpectedFailuresCursor;
-    private Cursor mUnexpectedPassesCursor;
-    private Cursor mExpectedPassesCursor;
-
-    private FileFilter mFileFilter;
-    private String mResultsRootDirPath;
-    private String mTestsRelativePath;
-    private Date mDate;
-
-    private int mResultsSinceLastHtmlDump = 0;
-    private int mResultsSinceLastDbAccess = 0;
-
-    private SummarizerDBHelper mDbHelper;
-
-    public Summarizer(String resultsRootDirPath, Context context) {
-        mFileFilter = new FileFilter();
-        mResultsRootDirPath = resultsRootDirPath;
-
-        /**
-         * We don't run the database I/O in a separate thread to avoid consumer/producer problem
-         * and to simplify code.
-         */
-        mDbHelper = new SummarizerDBHelper(context);
-        mDbHelper.open();
-    }
-
-    public static URI getDetailsUri() {
-        return new File(ManagerService.RESULTS_ROOT_DIR_PATH + File.separator +
-                HTML_DETAILS_RELATIVE_PATH).toURI();
-    }
-
-    public void appendTest(AbstractResult result) {
-        String relativePath = result.getRelativePath();
-
-        if (result.didCrash()) {
-            mCrashedTestsCount++;
-        }
-
-        if (result.didPass()) {
-            result.clearResults();
-            if (mFileFilter.isFail(relativePath)) {
-                mUnexpectedPasses.add(result);
-            } else {
-                mExpectedPasses.add(result);
-            }
-        } else {
-            if (mFileFilter.isFail(relativePath)) {
-                mExpectedFailures.add(result);
-            } else {
-                mUnexpectedFailures.add(result);
-            }
-        }
-
-        if (++mResultsSinceLastDbAccess == RESULTS_PER_DB_ACCESS) {
-            persistLists();
-            clearLists();
-        }
-    }
-
-    private void clearLists() {
-        mUnexpectedFailures.clear();
-        mExpectedFailures.clear();
-        mUnexpectedPasses.clear();
-        mExpectedPasses.clear();
-    }
-
-    private void persistLists() {
-        persistListToTable(mUnexpectedFailures, SummarizerDBHelper.UNEXPECTED_FAILURES_TABLE);
-        persistListToTable(mExpectedFailures, SummarizerDBHelper.EXPECTED_FAILURES_TABLE);
-        persistListToTable(mUnexpectedPasses, SummarizerDBHelper.UNEXPECTED_PASSES_TABLE);
-        persistListToTable(mExpectedPasses, SummarizerDBHelper.EXPECTED_PASSES_TABLE);
-        mResultsSinceLastDbAccess = 0;
-    }
-
-    private void persistListToTable(List<AbstractResult> results, String table) {
-        for (AbstractResult abstractResult : results) {
-            mDbHelper.insertAbstractResult(abstractResult, table);
-        }
-    }
-
-    public void setTestsRelativePath(String testsRelativePath) {
-        mTestsRelativePath = testsRelativePath;
-    }
-
-    public void summarize(Message onFinishMessage) {
-        persistLists();
-        clearLists();
-
-        mUnexpectedFailuresCursor =
-            mDbHelper.getAbstractResults(SummarizerDBHelper.UNEXPECTED_FAILURES_TABLE);
-        mUnexpectedPassesCursor =
-            mDbHelper.getAbstractResults(SummarizerDBHelper.UNEXPECTED_PASSES_TABLE);
-        mExpectedFailuresCursor =
-            mDbHelper.getAbstractResults(SummarizerDBHelper.EXPECTED_FAILURES_TABLE);
-        mExpectedPassesCursor =
-            mDbHelper.getAbstractResults(SummarizerDBHelper.EXPECTED_PASSES_TABLE);
-
-        String webKitRevision = getWebKitRevision();
-        createHtmlDetails(webKitRevision);
-        createTxtSummary(webKitRevision);
-
-        clearLists();
-        mUnexpectedFailuresCursor.close();
-        mUnexpectedPassesCursor.close();
-        mExpectedFailuresCursor.close();
-        mExpectedPassesCursor.close();
-
-        onFinishMessage.sendToTarget();
-    }
-
-    public void reset() {
-        mCrashedTestsCount = 0;
-        clearLists();
-        mDbHelper.reset();
-        mDate = new Date();
-    }
-
-    private void dumpHtmlToFile(StringBuilder html, boolean append) {
-        FsUtils.writeDataToStorage(new File(mResultsRootDirPath, HTML_DETAILS_RELATIVE_PATH),
-                html.toString().getBytes(), append);
-        html.setLength(0);
-        mResultsSinceLastHtmlDump = 0;
-    }
-
-    private void createTxtSummary(String webKitRevision) {
-        StringBuilder txt = new StringBuilder();
-
-        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
-        txt.append("Path: " + mTestsRelativePath + "\n");
-        txt.append("Date: " + dateFormat.format(mDate) + "\n");
-        txt.append("Build fingerprint: " + Build.FINGERPRINT + "\n");
-        txt.append("WebKit version: " + getWebKitVersionFromUserAgentString() + "\n");
-        txt.append("WebKit revision: " + webKitRevision + "\n");
-
-        txt.append("TOTAL:                     " + getTotalTestCount() + "\n");
-        txt.append("CRASHED (among all tests): " + mCrashedTestsCount + "\n");
-        txt.append("UNEXPECTED FAILURES:       " + mUnexpectedFailuresCursor.getCount() + "\n");
-        txt.append("UNEXPECTED PASSES:         " + mUnexpectedPassesCursor.getCount() + "\n");
-        txt.append("EXPECTED FAILURES:         " + mExpectedFailuresCursor.getCount() + "\n");
-        txt.append("EXPECTED PASSES:           " + mExpectedPassesCursor.getCount() + "\n");
-
-        FsUtils.writeDataToStorage(new File(mResultsRootDirPath, TXT_SUMMARY_RELATIVE_PATH),
-                txt.toString().getBytes(), false);
-    }
-
-    private void createHtmlDetails(String webKitRevision) {
-        StringBuilder html = new StringBuilder();
-
-        html.append("<html><head>");
-        html.append(CSS);
-        html.append(SCRIPT);
-        html.append("</head><body>");
-
-        createTopSummaryTable(webKitRevision, html);
-        dumpHtmlToFile(html, false);
-
-        createResultsList(html, "Unexpected failures", mUnexpectedFailuresCursor);
-        createResultsList(html, "Unexpected passes", mUnexpectedPassesCursor);
-        createResultsList(html, "Expected failures", mExpectedFailuresCursor);
-        createResultsList(html, "Expected passes", mExpectedPassesCursor);
-
-        html.append("</body></html>");
-        dumpHtmlToFile(html, true);
-    }
-
-    private int getTotalTestCount() {
-        return mUnexpectedFailuresCursor.getCount() +
-                mUnexpectedPassesCursor.getCount() +
-                mExpectedPassesCursor.getCount() +
-                mExpectedFailuresCursor.getCount();
-    }
-
-    private String getWebKitVersionFromUserAgentString() {
-        Resources resources = new Resources(new AssetManager(), new DisplayMetrics(),
-                new Configuration());
-        String userAgent =
-                resources.getString(com.android.internal.R.string.web_user_agent);
-
-        Matcher matcher = Pattern.compile("AppleWebKit/([0-9]+?\\.[0-9])").matcher(userAgent);
-        if (matcher.find()) {
-            return matcher.group(1);
-        }
-        return "unknown";
-    }
-
-    private String getWebKitRevision() {
-        URL url = null;
-        try {
-            url = new URL(ForwarderManager.getHostSchemePort(false) + "ThirdPartyProject.prop");
-        } catch (MalformedURLException e) {
-            assert false;
-        }
-
-        String thirdPartyProjectContents = new String(FsUtils.readDataFromUrl(url));
-        Matcher matcher = Pattern.compile("^version=([0-9]+)", Pattern.MULTILINE).matcher(
-                thirdPartyProjectContents);
-        if (matcher.find()) {
-            return matcher.group(1);
-        }
-        return "unknown";
-    }
-
-    private void createTopSummaryTable(String webKitRevision, StringBuilder html) {
-        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
-        html.append("<h1>" + "Layout tests' results for: " +
-                (mTestsRelativePath.equals("") ? "all tests" : mTestsRelativePath) + "</h1>");
-        html.append("<h3>" + "Date: " + dateFormat.format(new Date()) + "</h3>");
-        html.append("<h3>" + "Build fingerprint: " + Build.FINGERPRINT + "</h3>");
-        html.append("<h3>" + "WebKit version: " + getWebKitVersionFromUserAgentString() + "</h3>");
-
-        html.append("<h3>" + "WebKit revision: ");
-        html.append("<a href=\"http://trac.webkit.org/browser/trunk?rev=" + webKitRevision +
-                "\" target=\"_blank\"><span class=\"path\">" + webKitRevision + "</span></a>");
-        html.append("</h3>");
-
-        html.append("<table class=\"summary\">");
-        createSummaryTableRow(html, "TOTAL", getTotalTestCount());
-        createSummaryTableRow(html, "CRASHED (among all tests)", mCrashedTestsCount);
-        createSummaryTableRow(html, "UNEXPECTED FAILURES", mUnexpectedFailuresCursor.getCount());
-        createSummaryTableRow(html, "UNEXPECTED PASSES", mUnexpectedPassesCursor.getCount());
-        createSummaryTableRow(html, "EXPECTED FAILURES", mExpectedFailuresCursor.getCount());
-        createSummaryTableRow(html, "EXPECTED PASSES", mExpectedPassesCursor.getCount());
-        html.append("</table>");
-    }
-
-    private void createSummaryTableRow(StringBuilder html, String caption, int size) {
-        html.append("<tr>");
-        html.append("    <td>" + caption + "</td>");
-        html.append("    <td>" + size + "</td>");
-        html.append("</tr>");
-    }
-
-    private void createResultsList(
-            StringBuilder html, String title, Cursor cursor) {
-        String relativePath;
-        String id = "";
-        AbstractResult.ResultCode resultCode;
-
-        html.append("<h2>" + title + " [" + cursor.getCount() + "]</h2>");
-
-        if (!cursor.moveToFirst()) {
-            return;
-        }
-
-        AbstractResult result;
-        do {
-            result = SummarizerDBHelper.getAbstractResult(cursor);
-
-            relativePath = result.getRelativePath();
-            resultCode = result.getResultCode();
-
-            html.append("<h3>");
-
-            /**
-             * Technically, two different paths could end up being the same, because
-             * ':' is a valid  character in a path. However, it is probably not going
-             * to cause any problems in this case
-             */
-            id = relativePath.replace(File.separator, ":");
-
-            /** Write the test name */
-            if (resultCode == AbstractResult.ResultCode.RESULTS_DIFFER) {
-                html.append("<a href=\"#\" onClick=\"toggleDisplay('" + id + "');");
-                html.append("return false;\">");
-                html.append("<span class=\"tri\" id=\"tri." + id + "\">&#x25b6; </span>");
-                html.append("<span class=\"path\">" + relativePath + "</span>");
-                html.append("</a>");
-            } else {
-                html.append("<a href=\"" + getViewSourceUrl(result.getRelativePath()).toString() + "\"");
-                html.append(" target=\"_blank\">");
-                html.append("<span class=\"sqr sqr_" + (result.didPass() ? "pass" : "fail"));
-                html.append("\">&#x25a0; </span>");
-                html.append("<span class=\"path\">" + result.getRelativePath() + "</span>");
-                html.append("</a>");
-            }
-
-            if (!result.didPass()) {
-                appendTags(html, result);
-            }
-
-            html.append("</h3>");
-            appendExpectedResultsSources(result, html);
-
-            if (resultCode == AbstractResult.ResultCode.RESULTS_DIFFER) {
-                html.append("<div class=\"diff\" style=\"display: none;\" id=\"" + id + "\">");
-                html.append(result.getDiffAsHtml());
-                html.append("<a href=\"#\" onClick=\"toggleDisplay('" + id + "');");
-                html.append("return false;\">Hide</a>");
-                html.append(" | ");
-                html.append("<a href=\"" + getViewSourceUrl(relativePath).toString() + "\"");
-                html.append(" target=\"_blank\">Show source</a>");
-                html.append("</div>");
-            }
-
-            html.append("<div class=\"space\"></div>");
-
-            if (++mResultsSinceLastHtmlDump == RESULTS_PER_DUMP) {
-                dumpHtmlToFile(html, true);
-            }
-
-            cursor.moveToNext();
-        } while (!cursor.isAfterLast());
-    }
-
-    private void appendTags(StringBuilder html, AbstractResult result) {
-        /** Tag tests which crash, time out or where results don't match */
-        if (result.didCrash()) {
-            html.append(" <span class=\"listItem crashed\">Crashed</span>");
-        } else {
-            if (result.didTimeOut()) {
-                html.append(" <span class=\"listItem timed_out\">Timed out</span>");
-            }
-            AbstractResult.ResultCode resultCode = result.getResultCode();
-            if (resultCode != AbstractResult.ResultCode.RESULTS_MATCH) {
-                html.append(" <span class=\"listItem " + resultCode.name() + "\">");
-                html.append(resultCode.toString());
-                html.append("</span>");
-            }
-        }
-
-        /** Detect missing LTC function */
-        String additionalTextOutputString = result.getAdditionalTextOutputString();
-        if (additionalTextOutputString != null &&
-                additionalTextOutputString.contains("com.android.dumprendertree") &&
-                additionalTextOutputString.contains("has no method")) {
-            if (additionalTextOutputString.contains("LayoutTestController")) {
-                html.append(" <span class=\"listItem noLtc\">LTC function missing</span>");
-            }
-            if (additionalTextOutputString.contains("EventSender")) {
-                html.append(" <span class=\"listItem noEventSender\">");
-                html.append("ES function missing</span>");
-            }
-        }
-    }
-
-    private static final void appendExpectedResultsSources(AbstractResult result,
-            StringBuilder html) {
-        String textSource = result.getExpectedTextResultPath();
-        String imageSource = result.getExpectedImageResultPath();
-
-        if (result.didCrash()) {
-            html.append("<span class=\"source\">Did not look for expected results</span>");
-            return;
-        }
-
-        if (textSource == null) {
-            // Show if a text result is missing. We may want to revisit this decision when we add
-            // support for image results.
-            html.append("<span class=\"source\">Expected textual result missing</span>");
-        } else {
-            html.append("<span class=\"source\">Expected textual result from: ");
-            html.append("<a href=\"" + ForwarderManager.getHostSchemePort(false) + "LayoutTests/" +
-                    textSource + "\"");
-            html.append(" target=\"_blank\">");
-            html.append(textSource + "</a></span>");
-        }
-        if (imageSource != null) {
-            html.append("<span class=\"source\">Expected image result from: ");
-            html.append("<a href=\"" + ForwarderManager.getHostSchemePort(false) + "LayoutTests/" +
-                    imageSource + "\"");
-            html.append(" target=\"_blank\">");
-            html.append(imageSource + "</a></span>");
-        }
-    }
-
-    private static final URL getViewSourceUrl(String relativePath) {
-        URL url = null;
-        try {
-            url = new URL("http", "localhost", ForwarderManager.HTTP_PORT,
-                    "/Tools/DumpRenderTree/android/view_source.php?src=" +
-                    relativePath);
-        } catch (MalformedURLException e) {
-            assert false : "relativePath=" + relativePath;
-        }
-        return url;
-    }
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/SummarizerDBHelper.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/SummarizerDBHelper.java
deleted file mode 100644
index 23e13ec..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/SummarizerDBHelper.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.database.SQLException;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteOpenHelper;
-
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * A basic class that wraps database accesses inside itself and provides functionality to
- * store and retrieve AbstractResults.
- */
-public class SummarizerDBHelper {
-    private static final String KEY_ID = "id";
-    private static final String KEY_PATH = "path";
-    private static final String KEY_BYTES = "bytes";
-
-    private static final String DATABASE_NAME = "SummarizerDB";
-    private static final int DATABASE_VERSION = 1;
-
-    static final String EXPECTED_FAILURES_TABLE = "expectedFailures";
-    static final String UNEXPECTED_FAILURES_TABLE = "unexpectedFailures";
-    static final String EXPECTED_PASSES_TABLE = "expextedPasses";
-    static final String UNEXPECTED_PASSES_TABLE = "unexpextedPasses";
-    private static final Set<String> TABLES_NAMES = new HashSet<String>();
-    {
-        TABLES_NAMES.add(EXPECTED_FAILURES_TABLE);
-        TABLES_NAMES.add(EXPECTED_PASSES_TABLE);
-        TABLES_NAMES.add(UNEXPECTED_FAILURES_TABLE);
-        TABLES_NAMES.add(UNEXPECTED_PASSES_TABLE);
-    }
-
-    private static final void createTables(SQLiteDatabase db) {
-        String cmd;
-        for (String tableName : TABLES_NAMES) {
-            cmd = "create table " + tableName + " ("
-                    + KEY_ID + " integer primary key autoincrement, "
-                    + KEY_PATH + " text not null, "
-                    + KEY_BYTES + " blob not null);";
-            db.execSQL(cmd);
-        }
-    }
-
-    private static final void dropTables(SQLiteDatabase db) {
-        for (String tableName : TABLES_NAMES) {
-            db.execSQL("DROP TABLE IF EXISTS " + tableName);
-        }
-    }
-
-    private static class DatabaseHelper extends SQLiteOpenHelper {
-        DatabaseHelper(Context context) {
-            super(context, DATABASE_NAME, null, DATABASE_VERSION);
-        }
-
-        @Override
-        public void onCreate(SQLiteDatabase db) {
-            dropTables(db);
-            createTables(db);
-        }
-
-        @Override
-        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
-            /** NOOP for now, because we will never upgrade the db */
-        }
-
-        public void reset(SQLiteDatabase db) {
-            dropTables(db);
-            createTables(db);
-        }
-    }
-
-    private DatabaseHelper mDbHelper;
-    private SQLiteDatabase mDb;
-
-    private final Context mContext;
-
-    public SummarizerDBHelper(Context ctx) {
-        mContext = ctx;
-        mDbHelper = new DatabaseHelper(mContext);
-    }
-
-    public void reset() {
-        mDbHelper.reset(this.mDb);
-    }
-
-    public void open() throws SQLException {
-        mDb = mDbHelper.getWritableDatabase();
-    }
-
-    public void close() {
-        mDbHelper.close();
-    }
-
-    public void insertAbstractResult(AbstractResult result, String table) {
-        ContentValues cv = new ContentValues();
-        cv.put(KEY_PATH, result.getRelativePath());
-        cv.put(KEY_BYTES, result.getBytes());
-        mDb.insert(table, null, cv);
-    }
-
-    public Cursor getAbstractResults(String table) throws SQLException {
-        return mDb.query(false, table, new String[] {KEY_BYTES}, null, null, null, null,
-                KEY_PATH + " ASC", null);
-    }
-
-    public static AbstractResult getAbstractResult(Cursor cursor) {
-        return AbstractResult.create(cursor.getBlob(cursor.getColumnIndex(KEY_BYTES)));
-    }
-}
\ No newline at end of file
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/TestsListActivity.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/TestsListActivity.java
deleted file mode 100644
index e374c1b..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/TestsListActivity.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import com.android.dumprendertree2.scriptsupport.OnEverythingFinishedCallback;
-
-import android.app.Activity;
-import android.app.ProgressDialog;
-import android.content.Intent;
-import android.content.res.Configuration;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.view.Gravity;
-import android.view.Window;
-import android.webkit.WebView;
-import android.widget.Toast;
-
-import java.io.File;
-import java.util.ArrayList;
-
-/**
- * An Activity that generates a list of tests and sends the intent to
- * LayoutTestsExecuter to run them. It also restarts the LayoutTestsExecuter
- * after it crashes.
- */
-public class TestsListActivity extends Activity {
-
-    private static final int MSG_TEST_LIST_PRELOADER_DONE = 0;
-
-    /** Constants for adding extras to an intent */
-    public static final String EXTRA_TEST_PATH = "TestPath";
-
-    private static ProgressDialog sProgressDialog;
-
-    private Handler mHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MSG_TEST_LIST_PRELOADER_DONE:
-                    sProgressDialog.dismiss();
-                    mTestsList = (ArrayList<String>)msg.obj;
-                    mTotalTestCount = mTestsList.size();
-                    restartExecutor(0);
-                    break;
-            }
-        }
-    };
-
-    private ArrayList<String> mTestsList;
-    private int mTotalTestCount;
-
-    private OnEverythingFinishedCallback mOnEverythingFinishedCallback;
-    private boolean mEverythingFinished;
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        /** Prepare the progress dialog */
-        sProgressDialog = new ProgressDialog(TestsListActivity.this);
-        sProgressDialog.setCancelable(false);
-        sProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
-        sProgressDialog.setTitle(R.string.dialog_progress_title);
-        sProgressDialog.setMessage(getText(R.string.dialog_progress_msg));
-
-        requestWindowFeature(Window.FEATURE_PROGRESS);
-
-        Intent intent = getIntent();
-        if (!intent.getAction().equals(Intent.ACTION_RUN)) {
-            return;
-        }
-        String path = intent.getStringExtra(EXTRA_TEST_PATH);
-
-        sProgressDialog.show();
-        Message doneMsg = Message.obtain(mHandler, MSG_TEST_LIST_PRELOADER_DONE);
-
-        Intent serviceIntent = new Intent(this, ManagerService.class);
-        serviceIntent.putExtra("path", path);
-        startService(serviceIntent);
-
-        new TestsListPreloaderThread(path, doneMsg).start();
-    }
-
-    @Override
-    protected void onNewIntent(Intent intent) {
-        if (intent.getAction().equals(Intent.ACTION_REBOOT)) {
-            onCrashIntent(intent);
-        } else if (intent.getAction().equals(Intent.ACTION_SHUTDOWN)) {
-            onEverythingFinishedIntent(intent);
-        }
-    }
-
-    /**
-     * This method handles an intent that comes from ManageService when crash is detected.
-     * The intent contains an index in mTestsList of the test that crashed. TestsListActivity
-     * restarts the LayoutTestsExecutor from the following test in mTestsList, by sending
-     * an intent to it. This new intent contains a list of remaining tests to run,
-     * total count of all tests, and the index of the first test to run after restarting.
-     * LayoutTestExecutor runs then as usual, sending reports to ManagerService. If it
-     * detects the crash it sends a new intent and the flow repeats.
-     */
-    private void onCrashIntent(Intent intent) {
-        int nextTestToRun = intent.getIntExtra("crashedTestIndex", -1) + 1;
-        if (nextTestToRun > 0 && nextTestToRun <= mTotalTestCount) {
-            restartExecutor(nextTestToRun);
-        }
-    }
-
-    public void registerOnEverythingFinishedCallback(OnEverythingFinishedCallback callback) {
-        mOnEverythingFinishedCallback = callback;
-        if (mEverythingFinished) {
-            mOnEverythingFinishedCallback.onFinished();
-        }
-    }
-
-    private void onEverythingFinishedIntent(Intent intent) {
-        Toast toast = Toast.makeText(this,
-                "All tests finished.\nPress back key to return to the tests' list.",
-                Toast.LENGTH_LONG);
-        toast.setGravity(Gravity.CENTER, -40, 0);
-        toast.show();
-
-        /** Show the details to the user */
-        WebView webView = new WebView(this);
-        webView.getSettings().setJavaScriptEnabled(true);
-        webView.getSettings().setBuiltInZoomControls(true);
-        webView.getSettings().setEnableSmoothTransition(true);
-        /** This enables double-tap to zoom */
-        webView.getSettings().setUseWideViewPort(true);
-
-        setContentView(webView);
-        webView.loadUrl(Summarizer.getDetailsUri().toString());
-
-        mEverythingFinished = true;
-        if (mOnEverythingFinishedCallback != null) {
-            mOnEverythingFinishedCallback.onFinished();
-        }
-    }
-
-    /**
-     * This, together with android:configChanges="orientation" in manifest file, prevents
-     * the activity from restarting on orientation change.
-     */
-    @Override
-    public void onConfigurationChanged(Configuration newConfig) {
-        super.onConfigurationChanged(newConfig);
-    }
-
-    @Override
-    protected void onSaveInstanceState(Bundle outState) {
-        outState.putStringArrayList("testsList", mTestsList);
-        outState.putInt("totalCount", mTotalTestCount);
-
-        super.onSaveInstanceState(outState);
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Bundle savedInstanceState) {
-        super.onRestoreInstanceState(savedInstanceState);
-
-        mTestsList = savedInstanceState.getStringArrayList("testsList");
-        mTotalTestCount = savedInstanceState.getInt("totalCount");
-    }
-
-    /**
-     * (Re)starts the executer activity from the given test number (inclusive, 0-based).
-     * This number is an index in mTestsList, not the sublist passed in the intent.
-     *
-     * @param startFrom
-     *      test index in mTestsList to start the tests from (inclusive, 0-based)
-     */
-    private void restartExecutor(int startFrom) {
-        Intent intent = new Intent();
-        intent.setClass(this, LayoutTestsExecutor.class);
-        intent.setAction(Intent.ACTION_RUN);
-
-        if (startFrom < mTotalTestCount) {
-            File testListFile = new File(getExternalFilesDir(null), "test_list.txt");
-            FsUtils.saveTestListToStorage(testListFile, startFrom, mTestsList);
-            intent.putExtra(LayoutTestsExecutor.EXTRA_TESTS_FILE, testListFile.getAbsolutePath());
-            intent.putExtra(LayoutTestsExecutor.EXTRA_TEST_INDEX, startFrom);
-        } else {
-            intent.putExtra(LayoutTestsExecutor.EXTRA_TESTS_FILE, "");
-        }
-
-        startActivity(intent);
-    }
-}
\ No newline at end of file
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/TestsListPreloaderThread.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/TestsListPreloaderThread.java
deleted file mode 100644
index ab98830..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/TestsListPreloaderThread.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import android.os.Environment;
-import android.os.Message;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * A Thread that is responsible for generating a lists of tests to run.
- */
-public class TestsListPreloaderThread extends Thread {
-
-    private static final String LOG_TAG = "TestsListPreloaderThread";
-
-    /** A list containing relative paths of tests to run */
-    private ArrayList<String> mTestsList = new ArrayList<String>();
-
-    private FileFilter mFileFilter;
-
-    /**
-     * A relative path to the directory with the tests we want to run or particular test.
-     * Used up to and including preloadTests().
-     */
-    private String mRelativePath;
-
-    private Message mDoneMsg;
-
-    /**
-     * The given path must be relative to the root dir.
-     *
-     * @param path
-     * @param doneMsg
-     */
-    public TestsListPreloaderThread(String path, Message doneMsg) {
-        mRelativePath = path;
-        mDoneMsg = doneMsg;
-    }
-
-    @Override
-    public void run() {
-        mFileFilter = new FileFilter();
-        if (FileFilter.isTestFile(mRelativePath)) {
-            mTestsList.add(mRelativePath);
-        } else {
-            loadTestsFromUrl(mRelativePath);
-        }
-
-        mDoneMsg.obj = mTestsList;
-        mDoneMsg.sendToTarget();
-    }
-
-    /**
-     * Loads all the tests from the given directories and all the subdirectories
-     * into mTestsList.
-     *
-     * @param dirRelativePath
-     */
-    private void loadTestsFromUrl(String rootRelativePath) {
-        LinkedList<String> directoriesList = new LinkedList<String>();
-        directoriesList.add(rootRelativePath);
-
-        String relativePath;
-        String itemName;
-        while (!directoriesList.isEmpty()) {
-            relativePath = directoriesList.removeFirst();
-
-            List<String> dirRelativePaths = FsUtils.getLayoutTestsDirContents(relativePath, false, true);
-            if (dirRelativePaths != null) {
-                for (String dirRelativePath : dirRelativePaths) {
-                    itemName = new File(dirRelativePath).getName();
-                    if (FileFilter.isTestDir(itemName)) {
-                        directoriesList.add(dirRelativePath);
-                    }
-                }
-            }
-
-            List<String> testRelativePaths = FsUtils.getLayoutTestsDirContents(relativePath, false, false);
-            if (testRelativePaths != null) {
-                for (String testRelativePath : testRelativePaths) {
-                    itemName = new File(testRelativePath).getName();
-                    if (FileFilter.isTestFile(itemName)) {
-                        /** We choose to skip all the tests that are expected to crash. */
-                        if (!mFileFilter.isCrash(testRelativePath)) {
-                            mTestsList.add(testRelativePath);
-                        } else {
-                            /**
-                             * TODO: Summarizer is now in service - figure out how to send the info.
-                             * Previously: mSummarizer.addSkippedTest(relativePath);
-                             */
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/TextResult.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/TextResult.java
deleted file mode 100644
index fd1c0ad..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/TextResult.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.webkit.WebView;
-import android.webkit.WebViewClassic;
-
-import name.fraser.neil.plaintext.diff_match_patch;
-
-import java.util.LinkedList;
-
-/**
- * A result object for which the expected output is text. It does not have an image
- * expected result.
- *
- * <p>Created if layoutTestController.dumpAsText() was called.
- */
-public class TextResult extends AbstractResult {
-
-    private static final int MSG_DOCUMENT_AS_TEXT = 0;
-
-    private String mExpectedResult;
-    private String mExpectedResultPath;
-    private String mActualResult;
-    private String mRelativePath;
-    private boolean mDidTimeOut;
-    private ResultCode mResultCode;
-    transient private Message mResultObtainedMsg;
-
-    private boolean mDumpChildFramesAsText;
-
-    transient private Handler mHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            if (msg.what == MSG_DOCUMENT_AS_TEXT) {
-                mActualResult = (String)msg.obj;
-                mResultObtainedMsg.sendToTarget();
-            }
-        }
-    };
-
-    public TextResult(String relativePath) {
-        mRelativePath = relativePath;
-    }
-
-    public void setDumpChildFramesAsText(boolean dumpChildFramesAsText) {
-        mDumpChildFramesAsText = dumpChildFramesAsText;
-    }
-
-    /**
-     * Used to recreate the Result when received by the service.
-     *
-     * @param bundle
-     *      bundle with data used to recreate the result
-     */
-    public TextResult(Bundle bundle) {
-        mExpectedResult = bundle.getString("expectedTextualResult");
-        mExpectedResultPath = bundle.getString("expectedTextualResultPath");
-        mActualResult = bundle.getString("actualTextualResult");
-        setAdditionalTextOutputString(bundle.getString("additionalTextOutputString"));
-        mRelativePath = bundle.getString("relativePath");
-        mDidTimeOut = bundle.getBoolean("didTimeOut");
-    }
-
-    @Override
-    public void clearResults() {
-        super.clearResults();
-        mExpectedResult = null;
-        mActualResult = null;
-    }
-
-    @Override
-    public ResultCode getResultCode() {
-        if (mResultCode == null) {
-            mResultCode = resultsMatch() ? AbstractResult.ResultCode.RESULTS_MATCH
-                    : AbstractResult.ResultCode.RESULTS_DIFFER;
-        }
-        return mResultCode;
-    }
-
-    private boolean resultsMatch() {
-        assert mExpectedResult != null;
-        assert mActualResult != null;
-        // Trim leading and trailing empty lines, as other WebKit platforms do.
-        String leadingEmptyLines = "^\\n+";
-        String trailingEmptyLines = "\\n+$";
-        String trimmedExpectedResult = mExpectedResult.replaceFirst(leadingEmptyLines, "")
-                .replaceFirst(trailingEmptyLines, "");
-        String trimmedActualResult = mActualResult.replaceFirst(leadingEmptyLines, "")
-                .replaceFirst(trailingEmptyLines, "");
-        return trimmedExpectedResult.equals(trimmedActualResult);
-    }
-
-    @Override
-    public boolean didCrash() {
-        return false;
-    }
-
-    @Override
-    public boolean didTimeOut() {
-        return mDidTimeOut;
-    }
-
-    @Override
-    public void setDidTimeOut() {
-        mDidTimeOut = true;
-    }
-
-    @Override
-    public byte[] getActualImageResult() {
-        return null;
-    }
-
-    @Override
-    public String getActualTextResult() {
-        String additionalTextResultString = getAdditionalTextOutputString();
-        if (additionalTextResultString != null) {
-            return additionalTextResultString + mActualResult;
-        }
-
-        return mActualResult;
-    }
-
-    @Override
-    public void setExpectedImageResult(byte[] expectedResult) {
-        /** This method is not applicable to this type of result */
-    }
-
-    @Override
-    public void setExpectedImageResultPath(String relativePath) {
-        /** This method is not applicable to this type of result */
-    }
-
-    @Override
-    public String getExpectedImageResultPath() {
-        /** This method is not applicable to this type of result */
-        return null;
-    }
-
-    @Override
-    public void setExpectedTextResultPath(String relativePath) {
-        mExpectedResultPath = relativePath;
-    }
-
-    @Override
-    public String getExpectedTextResultPath() {
-        return mExpectedResultPath;
-    }
-
-    @Override
-    public void setExpectedTextResult(String expectedResult) {
-        // For text results, we use an empty string for the expected result when none is
-        // present, as other WebKit platforms do.
-        mExpectedResult = expectedResult == null ? "" : expectedResult;
-    }
-
-    @Override
-    public String getDiffAsHtml() {
-        assert mExpectedResult != null;
-        assert mActualResult != null;
-
-        StringBuilder html = new StringBuilder();
-        html.append("<table class=\"visual_diff\">");
-        html.append("    <tr class=\"headers\">");
-        html.append("        <td colspan=\"2\">Expected result:</td>");
-        html.append("        <td class=\"space\"></td>");
-        html.append("        <td colspan=\"2\">Actual result:</td>");
-        html.append("    </tr>");
-
-        appendDiffHtml(html);
-
-        html.append("    <tr class=\"footers\">");
-        html.append("        <td colspan=\"2\"></td>");
-        html.append("        <td class=\"space\"></td>");
-        html.append("        <td colspan=\"2\"></td>");
-        html.append("    </tr>");
-        html.append("</table>");
-
-        return html.toString();
-    }
-
-    private void appendDiffHtml(StringBuilder html) {
-        LinkedList<diff_match_patch.Diff> diffs =
-                new diff_match_patch().diff_main(mExpectedResult, mActualResult);
-
-        diffs = VisualDiffUtils.splitDiffsOnNewline(diffs);
-
-        LinkedList<String> expectedLines = new LinkedList<String>();
-        LinkedList<Integer> expectedLineNums = new LinkedList<Integer>();
-        LinkedList<String> actualLines = new LinkedList<String>();
-        LinkedList<Integer> actualLineNums = new LinkedList<Integer>();
-
-        VisualDiffUtils.generateExpectedResultLines(diffs, expectedLineNums, expectedLines);
-        VisualDiffUtils.generateActualResultLines(diffs, actualLineNums, actualLines);
-        // TODO: We should use a map for each line number and lines pair.
-        assert expectedLines.size() == expectedLineNums.size();
-        assert actualLines.size() == actualLineNums.size();
-        assert expectedLines.size() == actualLines.size();
-
-        html.append(VisualDiffUtils.getHtml(expectedLineNums, expectedLines,
-                actualLineNums, actualLines));
-    }
-
-    @Override
-    public TestType getType() {
-        return TestType.TEXT;
-    }
-
-    @Override
-    public void obtainActualResults(WebView webview, Message resultObtainedMsg) {
-        mResultObtainedMsg = resultObtainedMsg;
-        Message msg = mHandler.obtainMessage(MSG_DOCUMENT_AS_TEXT);
-
-        /**
-         * arg1 - should dump top frame as text
-         * arg2 - should dump child frames as text
-         */
-        msg.arg1 = 1;
-        msg.arg2 = mDumpChildFramesAsText ? 1 : 0;
-        WebViewClassic.fromWebView(webview).documentAsText(msg);
-    }
-
-    @Override
-    public Bundle getBundle() {
-        Bundle bundle = new Bundle();
-        bundle.putString("expectedTextualResult", mExpectedResult);
-        bundle.putString("expectedTextualResultPath", mExpectedResultPath);
-        bundle.putString("actualTextualResult", getActualTextResult());
-        bundle.putString("additionalTextOutputString", getAdditionalTextOutputString());
-        bundle.putString("relativePath", mRelativePath);
-        bundle.putBoolean("didTimeOut", mDidTimeOut);
-        bundle.putString("type", getType().name());
-        return bundle;
-    }
-
-    @Override
-    public String getRelativePath() {
-        return mRelativePath;
-    }
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/VisualDiffUtils.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/VisualDiffUtils.java
deleted file mode 100644
index d7f7313..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/VisualDiffUtils.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2;
-
-import name.fraser.neil.plaintext.diff_match_patch;
-
-import java.util.LinkedList;
-
-/**
- * Helper methods fo TextResult.getDiffAsHtml()
- */
-public class VisualDiffUtils {
-
-    private static final int DONT_PRINT_LINE_NUMBER = -1;
-
-    /**
-     * Preprocesses the list of diffs so that new line characters appear only at the end of
-     * diff.text
-     *
-     * @param diffs
-     * @return
-     *      LinkedList of diffs where new line character appears only on the end of
-     *      diff.text
-     */
-    public static LinkedList<diff_match_patch.Diff> splitDiffsOnNewline(
-            LinkedList<diff_match_patch.Diff> diffs) {
-        LinkedList<diff_match_patch.Diff> newDiffs = new LinkedList<diff_match_patch.Diff>();
-
-        String[] parts;
-        int lengthMinusOne;
-        for (diff_match_patch.Diff diff : diffs) {
-            parts = diff.text.split("\n", -1);
-            if (parts.length == 1) {
-                newDiffs.add(diff);
-                continue;
-            }
-
-            lengthMinusOne = parts.length - 1;
-            for (int i = 0; i < lengthMinusOne; i++) {
-                newDiffs.add(new diff_match_patch.Diff(diff.operation, parts[i] + "\n"));
-            }
-            if (!parts[lengthMinusOne].isEmpty()) {
-                newDiffs.add(new diff_match_patch.Diff(diff.operation, parts[lengthMinusOne]));
-            }
-        }
-
-        return newDiffs;
-    }
-
-    public static void generateExpectedResultLines(LinkedList<diff_match_patch.Diff> diffs,
-            LinkedList<Integer> lineNums, LinkedList<String> lines) {
-        String delSpan = "<span class=\"del\">";
-        String eqlSpan = "<span class=\"eql\">";
-
-        String line = "";
-        int i = 1;
-        diff_match_patch.Diff diff;
-        int size = diffs.size();
-        boolean isLastDiff;
-        for (int j = 0; j < size; j++) {
-            diff = diffs.get(j);
-            isLastDiff = j == size - 1;
-            switch (diff.operation) {
-                case DELETE:
-                    line = processDiff(diff, lineNums, lines, line, i, delSpan, isLastDiff);
-                    if (line.equals("")) {
-                        i++;
-                    }
-                    break;
-
-                case INSERT:
-                    // If the line is currently empty and this insertion is the entire line, the
-                    // expected line is absent, so it has no line number.
-                    if (diff.text.endsWith("\n") || isLastDiff) {
-                        lineNums.add(line.equals("") ? DONT_PRINT_LINE_NUMBER : i++);
-                        lines.add(line);
-                        line = "";
-                    }
-                    break;
-
-                case EQUAL:
-                    line = processDiff(diff, lineNums, lines, line, i, eqlSpan, isLastDiff);
-                    if (line.equals("")) {
-                        i++;
-                    }
-                    break;
-            }
-        }
-    }
-
-    public static void generateActualResultLines(LinkedList<diff_match_patch.Diff> diffs,
-            LinkedList<Integer> lineNums, LinkedList<String> lines) {
-        String insSpan = "<span class=\"ins\">";
-        String eqlSpan = "<span class=\"eql\">";
-
-        String line = "";
-        int i = 1;
-        diff_match_patch.Diff diff;
-        int size = diffs.size();
-        boolean isLastDiff;
-        for (int j = 0; j < size; j++) {
-            diff = diffs.get(j);
-            isLastDiff = j == size - 1;
-            switch (diff.operation) {
-                case INSERT:
-                    line = processDiff(diff, lineNums, lines, line, i, insSpan, isLastDiff);
-                    if (line.equals("")) {
-                        i++;
-                    }
-                    break;
-
-                case DELETE:
-                    // If the line is currently empty and deletion is the entire line, the
-                    // actual line is absent, so it has no line number.
-                    if (diff.text.endsWith("\n") || isLastDiff) {
-                        lineNums.add(line.equals("") ? DONT_PRINT_LINE_NUMBER : i++);
-                        lines.add(line);
-                        line = "";
-                    }
-                    break;
-
-                case EQUAL:
-                    line = processDiff(diff, lineNums, lines, line, i, eqlSpan, isLastDiff);
-                    if (line.equals("")) {
-                        i++;
-                    }
-                    break;
-            }
-        }
-    }
-
-    /**
-     * Generate or append a line for a given diff and add it to given collections if necessary.
-     * It puts diffs in HTML spans.
-     *
-     * @param diff
-     * @param lineNums
-     * @param lines
-     * @param line
-     * @param i
-     * @param begSpan
-     * @param forceOutputLine Force the current line to be output
-     * @return
-     */
-    public static String processDiff(diff_match_patch.Diff diff, LinkedList<Integer> lineNums,
-            LinkedList<String> lines, String line, int i, String begSpan, boolean forceOutputLine) {
-        String endSpan = "</span>";
-        String br = "&nbsp;";
-
-        if (diff.text.endsWith("\n") || forceOutputLine) {
-            lineNums.add(i);
-            /** TODO: Think of better way to replace stuff */
-            line += begSpan + diff.text.replace("  ", "&nbsp;&nbsp;")
-                    + endSpan + br;
-            lines.add(line);
-            line = "";
-        } else {
-            line += begSpan + diff.text.replace("  ", "&nbsp;&nbsp;") + endSpan;
-        }
-
-        return line;
-    }
-
-    public static String getHtml(LinkedList<Integer> lineNums1, LinkedList<String> lines1,
-            LinkedList<Integer> lineNums2, LinkedList<String> lines2) {
-        StringBuilder html = new StringBuilder();
-        int lineNum;
-        int size = lines1.size();
-        for (int i = 0; i < size; i++) {
-            html.append("<tr class=\"results\">");
-
-            html.append("    <td class=\"line_count\">");
-            lineNum = lineNums1.removeFirst();
-            if (lineNum > 0) {
-                html.append(lineNum);
-            }
-            html.append("    </td>");
-
-            html.append("    <td class=\"line\">");
-            html.append(lines1.removeFirst());
-            html.append("    </td>");
-
-            html.append("    <td class=\"space\"></td>");
-
-            html.append("    <td class=\"line_count\">");
-            lineNum = lineNums2.removeFirst();
-            if (lineNum > 0) {
-                html.append(lineNum);
-            }
-            html.append("    </td>");
-
-            html.append("    <td class=\"line\">");
-            html.append(lines2.removeFirst());
-            html.append("    </td>");
-
-            html.append("</tr>");
-        }
-        return html.toString();
-    }
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/forwarder/AdbUtils.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/forwarder/AdbUtils.java
deleted file mode 100644
index 224509d..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/forwarder/AdbUtils.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2.forwarder;
-
-import android.util.Log;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.Socket;
-
-/**
- * The utility class that can setup a socket allowing the device to communicate with remote
- * machines through the machine that the device is connected to via adb.
- */
-public class AdbUtils {
-    private static final String LOG_TAG = "AdbUtils";
-
-    private static final String ADB_OK = "OKAY";
-    private static final int ADB_PORT = 5037;
-    private static final String ADB_HOST = "127.0.0.1";
-    private static final int ADB_RESPONSE_SIZE = 4;
-
-    /**
-     * Creates a new socket that can be configured to serve as a transparent proxy to a
-     * remote machine. This can be achieved by calling configureSocket()
-     *
-     * @return a socket that can be configured to link to remote machine
-     * @throws IOException
-     */
-    public static Socket createSocket() throws IOException{
-        return new Socket(ADB_HOST, ADB_PORT);
-    }
-
-    /**
-     * Configures the connection to serve as a transparent proxy to a remote machine.
-     * The given streams must belong to a socket created by createSocket().
-     *
-     * @param inputStream inputStream of the socket we want to configure
-     * @param outputStream outputStream of the socket we want to configure
-     * @param remoteAddress address of the remote machine (as you would type in a browser
-     *      in a machine that the device is connected to via adb)
-     * @param remotePort port on which to connect
-     * @return if the configuration suceeded
-     * @throws IOException
-     */
-    public static boolean configureConnection(InputStream inputStream, OutputStream outputStream,
-            String remoteAddress, int remotePort) throws IOException {
-        String cmd = "tcp:" + remotePort + ":" + remoteAddress;
-        cmd = String.format("%04X", cmd.length()) + cmd;
-
-        byte[] buf = new byte[ADB_RESPONSE_SIZE];
-        outputStream.write(cmd.getBytes());
-        int read = inputStream.read(buf);
-        if (read != ADB_RESPONSE_SIZE || !ADB_OK.equals(new String(buf))) {
-            Log.w(LOG_TAG, "adb cmd failed.");
-            return false;
-        }
-        return true;
-    }
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/forwarder/ConnectionHandler.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/forwarder/ConnectionHandler.java
deleted file mode 100644
index f19cd41..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/forwarder/ConnectionHandler.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2.forwarder;
-
-import android.util.Log;
-
-import com.android.dumprendertree2.FsUtils;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.Socket;
-
-/**
- * Worker class for {@link Forwarder}. A ConnectionHandler will be created once the Forwarder
- * accepts an incoming connection, and it will then forward the incoming/outgoing streams to a
- * connection already proxied by adb networking (see also {@link AdbUtils}).
- */
-public class ConnectionHandler {
-
-    private static final String LOG_TAG = "ConnectionHandler";
-
-    public static interface OnFinishedCallback {
-        public void onFinished();
-    }
-
-    private class SocketPipeThread extends Thread {
-
-        private InputStream mInputStream;
-        private OutputStream mOutputStream;
-
-        public SocketPipeThread(InputStream inputStream, OutputStream outputStream) {
-            mInputStream = inputStream;
-            mOutputStream = outputStream;
-            setName("SocketPipeThread: " + getName());
-        }
-
-        @Override
-        public void run() {
-            byte[] buffer = new byte[4096];
-            int length;
-            while (true) {
-                try {
-                    if ((length = mInputStream.read(buffer)) < 0) {
-                        break;
-                    }
-                    mOutputStream.write(buffer, 0, length);
-                } catch (IOException e) {
-                    /** This exception means one of the streams is closed */
-                    Log.v(LOG_TAG, this.toString(), e);
-                    break;
-                }
-            }
-
-            synchronized (mThreadsRunning) {
-                mThreadsRunning--;
-                if (mThreadsRunning == 0) {
-                    ConnectionHandler.this.stop();
-                    mOnFinishedCallback.onFinished();
-                }
-            }
-        }
-
-        @Override
-        public String toString() {
-            return getName();
-        }
-    }
-
-    private Integer mThreadsRunning;
-
-    private Socket mFromSocket, mToSocket;
-    private SocketPipeThread mFromToPipe, mToFromPipe;
-    private InputStream mFromSocketInputStream, mToSocketInputStream;
-    private OutputStream mFromSocketOutputStream, mToSocketOutputStream;
-
-    private int mPort;
-    private String mRemoteMachineIpAddress;
-
-    private OnFinishedCallback mOnFinishedCallback;
-
-    public ConnectionHandler(String remoteMachineIp, int port, Socket fromSocket, Socket toSocket)
-            throws IOException {
-        mRemoteMachineIpAddress = remoteMachineIp;
-        mPort = port;
-
-        mFromSocket = fromSocket;
-        mToSocket = toSocket;
-
-        try {
-            mFromSocketInputStream = mFromSocket.getInputStream();
-            mToSocketInputStream = mToSocket.getInputStream();
-            mFromSocketOutputStream = mFromSocket.getOutputStream();
-            mToSocketOutputStream = mToSocket.getOutputStream();
-            AdbUtils.configureConnection(mToSocketInputStream, mToSocketOutputStream,
-                    mRemoteMachineIpAddress, mPort);
-        } catch (IOException e) {
-            Log.e(LOG_TAG, "Unable to start ConnectionHandler", e);
-            closeStreams();
-            throw e;
-        }
-
-        mFromToPipe = new SocketPipeThread(mFromSocketInputStream, mToSocketOutputStream);
-        mToFromPipe = new SocketPipeThread(mToSocketInputStream, mFromSocketOutputStream);
-    }
-
-    public void registerOnConnectionHandlerFinishedCallback(OnFinishedCallback callback) {
-        mOnFinishedCallback = callback;
-    }
-
-    private void closeStreams() {
-        FsUtils.closeInputStream(mFromSocketInputStream);
-        FsUtils.closeInputStream(mToSocketInputStream);
-        FsUtils.closeOutputStream(mFromSocketOutputStream);
-        FsUtils.closeOutputStream(mToSocketOutputStream);
-    }
-
-    public void start() {
-        /** We have 2 threads running, one for each pipe, that we start here. */
-        mThreadsRunning = 2;
-        mFromToPipe.start();
-        mToFromPipe.start();
-    }
-
-    public void stop() {
-        shutdown(mFromSocket);
-        shutdown(mToSocket);
-    }
-
-    private void shutdown(Socket socket) {
-        synchronized (mFromToPipe) {
-            synchronized (mToFromPipe) {
-                /** This will stop the while loop in the run method */
-                try {
-                    if (!socket.isInputShutdown()) {
-                        socket.shutdownInput();
-                    }
-                } catch (IOException e) {
-                    Log.e(LOG_TAG, "mFromToPipe=" + mFromToPipe + " mToFromPipe=" + mToFromPipe, e);
-                }
-                try {
-                    if (!socket.isOutputShutdown()) {
-                        socket.shutdownOutput();
-                    }
-                } catch (IOException e) {
-                    Log.e(LOG_TAG, "mFromToPipe=" + mFromToPipe + " mToFromPipe=" + mToFromPipe, e);
-                }
-                try {
-                    if (!socket.isClosed()) {
-                        socket.close();
-                    }
-                } catch (IOException e) {
-                    Log.e(LOG_TAG, "mFromToPipe=" + mFromToPipe + " mToFromPipe=" + mToFromPipe, e);
-                }
-            }
-        }
-    }
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/forwarder/Forwarder.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/forwarder/Forwarder.java
deleted file mode 100644
index ce22fa0..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/forwarder/Forwarder.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2.forwarder;
-
-import android.util.Log;
-
-import java.io.IOException;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * A port forwarding server. Listens on localhost on specified port and forwards the tcp
- * communications to external socket via adb networking proxy.
- */
-public class Forwarder extends Thread {
-    private static final String LOG_TAG = "Forwarder";
-
-    private int mPort;
-    private String mRemoteMachineIpAddress;
-
-    private ServerSocket mServerSocket;
-
-    private Set<ConnectionHandler> mConnectionHandlers = new HashSet<ConnectionHandler>();
-
-    public Forwarder(int port, String remoteMachineIpAddress) {
-        mPort = port;
-        mRemoteMachineIpAddress = remoteMachineIpAddress;
-    }
-
-    @Override
-    public void start() {
-        Log.i(LOG_TAG, "start(): Starting fowarder on port: " + mPort);
-
-        try {
-            mServerSocket = new ServerSocket(mPort);
-        } catch (IOException e) {
-            Log.e(LOG_TAG, "mPort=" + mPort, e);
-            return;
-        }
-
-        super.start();
-    }
-
-    @Override
-    public void run() {
-        while (true) {
-            Socket localSocket;
-            try {
-                localSocket = mServerSocket.accept();
-            } catch (IOException e) {
-                /** This most likely means that mServerSocket is already closed */
-                Log.w(LOG_TAG, "mPort=" + mPort, e);
-                break;
-            }
-
-            Socket remoteSocket = null;
-            final ConnectionHandler connectionHandler;
-            try {
-                remoteSocket = AdbUtils.createSocket();
-                connectionHandler = new ConnectionHandler(
-                        mRemoteMachineIpAddress, mPort, localSocket, remoteSocket);
-            } catch (IOException exception) {
-                try {
-                    localSocket.close();
-                } catch (IOException e) {
-                    Log.e(LOG_TAG, "mPort=" + mPort, e);
-                }
-                if (remoteSocket != null) {
-                    try {
-                        remoteSocket.close();
-                    } catch (IOException e) {
-                        Log.e(LOG_TAG, "mPort=" + mPort, e);
-                    }
-                }
-                continue;
-            }
-
-            /**
-             * We have to close the sockets after the ConnectionHandler finishes, so we
-             * don't get "Too may open files" exception. We also remove the ConnectionHandler
-             * from the collection to avoid memory issues.
-             * */
-            ConnectionHandler.OnFinishedCallback callback =
-                    new ConnectionHandler.OnFinishedCallback() {
-                @Override
-                public void onFinished() {
-                    synchronized (this) {
-                        if (!mConnectionHandlers.remove(connectionHandler)) {
-                            assert false : "removeConnectionHandler(): not in the collection";
-                        }
-                    }
-                }
-            };
-            connectionHandler.registerOnConnectionHandlerFinishedCallback(callback);
-
-            synchronized (this) {
-                mConnectionHandlers.add(connectionHandler);
-            }
-            connectionHandler.start();
-        }
-
-        synchronized (this) {
-            for (ConnectionHandler connectionHandler : mConnectionHandlers) {
-                connectionHandler.stop();
-            }
-        }
-    }
-
-    public void finish() {
-        try {
-            mServerSocket.close();
-        } catch (IOException e) {
-            Log.e(LOG_TAG, "mPort=" + mPort, e);
-        }
-    }
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/forwarder/ForwarderManager.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/forwarder/ForwarderManager.java
deleted file mode 100644
index cff436f..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/forwarder/ForwarderManager.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2.forwarder;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import android.util.Log;
-
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * A simple class to start and stop Forwarders running on some ports.
- *
- * It uses a singleton pattern and is thread safe.
- */
-public class ForwarderManager {
-    private static final String LOG_TAG = "ForwarderManager";
-
-    /**
-     * The IP address of the server serving the tests.
-     */
-    private static final String HOST_IP = "127.0.0.1";
-
-    /**
-     * We use these ports because other webkit platforms do. They are set up in
-     * external/webkit/LayoutTests/http/conf/apache2-debian-httpd.conf
-     */
-    public static final int HTTP_PORT = 8000;
-    public static final int HTTPS_PORT = 8443;
-
-    private static ForwarderManager forwarderManager;
-
-    private Set<Forwarder> mForwarders;
-    private boolean mIsStarted;
-
-    private ForwarderManager() {
-        mForwarders = new HashSet<Forwarder>(2);
-        mForwarders.add(new Forwarder(HTTP_PORT, HOST_IP));
-        mForwarders.add(new Forwarder(HTTPS_PORT, HOST_IP));
-    }
-
-    /**
-     * Returns the main part of the URL with the trailing slash
-     *
-     * @param isHttps
-     * @return
-     */
-    public static final String getHostSchemePort(boolean isHttps) {
-        int port;
-        String protocol;
-        if (isHttps) {
-            protocol = "https";
-            port = HTTPS_PORT;
-        } else {
-            protocol = "http";
-            port = HTTP_PORT;
-        }
-
-        URL url = null;
-        try {
-            url = new URL(protocol, HOST_IP, port, "/");
-        } catch (MalformedURLException e) {
-            assert false : "isHttps=" + isHttps;
-        }
-
-        return url.toString();
-    }
-
-    public static synchronized ForwarderManager getForwarderManager() {
-        if (forwarderManager == null) {
-            forwarderManager = new ForwarderManager();
-        }
-        return forwarderManager;
-    }
-
-    @Override
-    public Object clone() throws CloneNotSupportedException {
-        throw new CloneNotSupportedException();
-    }
-
-    public synchronized void start() {
-        if (mIsStarted) {
-            Log.w(LOG_TAG, "start(): ForwarderManager already running! NOOP.");
-            return;
-        }
-
-        for (Forwarder forwarder : mForwarders) {
-            forwarder.start();
-        }
-
-        mIsStarted = true;
-        Log.i(LOG_TAG, "ForwarderManager started.");
-    }
-
-    public synchronized void stop() {
-        if (!mIsStarted) {
-            Log.w(LOG_TAG, "stop(): ForwarderManager already stopped! NOOP.");
-            return;
-        }
-
-        for (Forwarder forwarder : mForwarders) {
-            forwarder.finish();
-        }
-
-        mIsStarted = false;
-        Log.i(LOG_TAG, "ForwarderManager stopped.");
-    }
-}
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/scriptsupport/OnEverythingFinishedCallback.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/scriptsupport/OnEverythingFinishedCallback.java
deleted file mode 100644
index e1d4364..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/scriptsupport/OnEverythingFinishedCallback.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2.scriptsupport;
-
-/**
- * Callback used to inform scriptsupport.Starter that everything is finished and
- * we can exit
- */
-public interface OnEverythingFinishedCallback {
-    public void onFinished();
-}
\ No newline at end of file
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/scriptsupport/ScriptTestRunner.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/scriptsupport/ScriptTestRunner.java
deleted file mode 100644
index 78f58d5..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/scriptsupport/ScriptTestRunner.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2.scriptsupport;
-
-import android.os.Bundle;
-import android.test.InstrumentationTestRunner;
-
-/**
- * Extends InstrumentationTestRunner to allow the script to pass arguments to the application
- */
-public class ScriptTestRunner extends InstrumentationTestRunner {
-    String mTestsRelativePath;
-
-    @Override
-    public void onCreate(Bundle arguments) {
-        mTestsRelativePath = arguments.getString("path");
-        super.onCreate(arguments);
-    }
-
-    public String getTestsRelativePath() {
-        return mTestsRelativePath;
-    }
-}
\ No newline at end of file
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/scriptsupport/Starter.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/scriptsupport/Starter.java
deleted file mode 100644
index 6f41a0f..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/scriptsupport/Starter.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2.scriptsupport;
-
-import android.content.Intent;
-import android.test.ActivityInstrumentationTestCase2;
-import android.util.Log;
-
-import com.android.dumprendertree2.TestsListActivity;
-import com.android.dumprendertree2.forwarder.ForwarderManager;
-
-/**
- * A class which provides methods that can be invoked by a script running on the host machine to
- * run the tests.
- *
- * It starts a TestsListActivity and does not return until all the tests finish executing.
- */
-public class Starter extends ActivityInstrumentationTestCase2<TestsListActivity> {
-    private static final String LOG_TAG = "Starter";
-    private boolean mEverythingFinished;
-
-    public Starter() {
-        super(TestsListActivity.class);
-    }
-
-    /**
-     * This method is called from adb to start executing the tests. It doesn't return
-     * until everything is finished so that the script can wait for the end if it needs
-     * to.
-     */
-    public void startLayoutTests() {
-        ScriptTestRunner runner = (ScriptTestRunner)getInstrumentation();
-        String relativePath = runner.getTestsRelativePath();
-
-        ForwarderManager.getForwarderManager().start();
-
-        Intent intent = new Intent();
-        intent.setClassName("com.android.dumprendertree2", "TestsListActivity");
-        intent.setAction(Intent.ACTION_RUN);
-        intent.putExtra(TestsListActivity.EXTRA_TEST_PATH, relativePath);
-        setActivityIntent(intent);
-        getActivity().registerOnEverythingFinishedCallback(new OnEverythingFinishedCallback() {
-            /** This method is safe to call on any thread */
-            @Override
-            public void onFinished() {
-                synchronized (Starter.this) {
-                    mEverythingFinished = true;
-                    Starter.this.notifyAll();
-                }
-            }
-        });
-
-        synchronized (this) {
-            while (!mEverythingFinished) {
-                try {
-                    this.wait();
-                } catch (InterruptedException e) {
-                    Log.e(LOG_TAG, "startLayoutTests()", e);
-                }
-            }
-        }
-
-        ForwarderManager.getForwarderManager().stop();
-    }
-}
\ No newline at end of file
diff --git a/tests/DumpRenderTree2/src/com/android/dumprendertree2/ui/DirListActivity.java b/tests/DumpRenderTree2/src/com/android/dumprendertree2/ui/DirListActivity.java
deleted file mode 100644
index 5de69a7..0000000
--- a/tests/DumpRenderTree2/src/com/android/dumprendertree2/ui/DirListActivity.java
+++ /dev/null
@@ -1,426 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dumprendertree2.ui;
-
-import com.android.dumprendertree2.FileFilter;
-import com.android.dumprendertree2.FsUtils;
-import com.android.dumprendertree2.TestsListActivity;
-import com.android.dumprendertree2.R;
-import com.android.dumprendertree2.forwarder.ForwarderManager;
-
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.ListActivity;
-import android.app.ProgressDialog;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.res.Configuration;
-import android.os.Bundle;
-import android.os.Environment;
-import android.os.Handler;
-import android.os.Message;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.ImageView;
-import android.widget.ListView;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * An Activity that allows navigating through tests folders and choosing folders or tests to run.
- */
-public class DirListActivity extends ListActivity {
-
-    private static final String LOG_TAG = "DirListActivity";
-
-    /** TODO: This is just a guess - think of a better way to achieve it */
-    private static final int MEAN_TITLE_CHAR_SIZE = 13;
-
-    private static final int PROGRESS_DIALOG_DELAY_MS = 200;
-
-    /** Code for the dialog, used in showDialog and onCreateDialog */
-    private static final int DIALOG_RUN_ABORT_DIR = 0;
-
-    /** Messages codes */
-    private static final int MSG_LOADED_ITEMS = 0;
-    private static final int MSG_SHOW_PROGRESS_DIALOG = 1;
-
-    private static final CharSequence NO_RESPONSE_MESSAGE =
-            "No response from host when getting directory contents. Is the host server running?";
-
-    /** Initialized lazily before first sProgressDialog.show() */
-    private static ProgressDialog sProgressDialog;
-
-    private ListView mListView;
-
-    /** This is a relative path! */
-    private String mCurrentDirPath;
-
-    /**
-     * A thread responsible for loading the contents of the directory from sd card
-     * and sending them via Message to main thread that then loads them into
-     * ListView
-     */
-    private class LoadListItemsThread extends Thread {
-        private Handler mHandler;
-        private String mRelativePath;
-
-        public LoadListItemsThread(String relativePath, Handler handler) {
-            mRelativePath = relativePath;
-            mHandler = handler;
-        }
-
-        @Override
-        public void run() {
-            Message msg = mHandler.obtainMessage(MSG_LOADED_ITEMS);
-            msg.obj = getDirList(mRelativePath);
-            mHandler.sendMessage(msg);
-        }
-    }
-
-    /**
-     * Very simple object to use inside ListView as an item.
-     */
-    private static class ListItem implements Comparable<ListItem> {
-        private String mRelativePath;
-        private String mName;
-        private boolean mIsDirectory;
-
-        public ListItem(String relativePath, boolean isDirectory) {
-            mRelativePath = relativePath;
-            mName = new File(relativePath).getName();
-            mIsDirectory = isDirectory;
-        }
-
-        public boolean isDirectory() {
-            return mIsDirectory;
-        }
-
-        public String getRelativePath() {
-            return mRelativePath;
-        }
-
-        public String getName() {
-            return mName;
-        }
-
-        @Override
-        public int compareTo(ListItem another) {
-            return mRelativePath.compareTo(another.getRelativePath());
-        }
-
-        @Override
-        public boolean equals(Object o) {
-            if (!(o instanceof ListItem)) {
-                return false;
-            }
-
-            return mRelativePath.equals(((ListItem)o).getRelativePath());
-        }
-
-        @Override
-        public int hashCode() {
-            return mRelativePath.hashCode();
-        }
-
-    }
-
-    /**
-     * A custom adapter that sets the proper icon and label in the list view.
-     */
-    private static class DirListAdapter extends ArrayAdapter<ListItem> {
-        private Activity mContext;
-        private ListItem[] mItems;
-
-        public DirListAdapter(Activity context, ListItem[] items) {
-            super(context, R.layout.dirlist_row, items);
-
-            mContext = context;
-            mItems = items;
-        }
-
-        @Override
-        public View getView(int position, View convertView, ViewGroup parent) {
-            LayoutInflater inflater = mContext.getLayoutInflater();
-            View row = inflater.inflate(R.layout.dirlist_row, null);
-
-            TextView label = (TextView)row.findViewById(R.id.label);
-            label.setText(mItems[position].getName());
-
-            ImageView icon = (ImageView)row.findViewById(R.id.icon);
-            if (mItems[position].isDirectory()) {
-                icon.setImageResource(R.drawable.folder);
-            } else {
-                icon.setImageResource(R.drawable.runtest);
-            }
-
-            return row;
-        }
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        ForwarderManager.getForwarderManager().start();
-
-        mListView = getListView();
-
-        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                ListItem item = (ListItem)parent.getItemAtPosition(position);
-
-                if (item.isDirectory()) {
-                    showDir(item.getRelativePath());
-                } else {
-                    /** Run the test */
-                    runAllTestsUnder(item.getRelativePath());
-                }
-            }
-        });
-
-        mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
-            @Override
-            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
-                ListItem item = (ListItem)parent.getItemAtPosition(position);
-
-                if (item.isDirectory()) {
-                    Bundle arguments = new Bundle(1);
-                    arguments.putString("name", item.getName());
-                    arguments.putString("relativePath", item.getRelativePath());
-                    showDialog(DIALOG_RUN_ABORT_DIR, arguments);
-                } else {
-                    /** TODO: Maybe show some info about a test? */
-                }
-
-                return true;
-            }
-        });
-
-        /** All the paths are relative to test root dir where possible */
-        showDir("");
-    }
-
-    private void runAllTestsUnder(String relativePath) {
-        Intent intent = new Intent();
-        intent.setClass(DirListActivity.this, TestsListActivity.class);
-        intent.setAction(Intent.ACTION_RUN);
-        intent.putExtra(TestsListActivity.EXTRA_TEST_PATH, relativePath);
-        startActivity(intent);
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        MenuInflater inflater = getMenuInflater();
-        inflater.inflate(R.menu.gui_menu, menu);
-        return true;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case R.id.run_all:
-                runAllTestsUnder(mCurrentDirPath);
-                return true;
-            default:
-                return super.onOptionsItemSelected(item);
-        }
-    }
-
-    @Override
-    /**
-     * Moves to the parent directory if one exists. Does not allow to move above
-     * the test 'root' directory.
-     */
-    public void onBackPressed() {
-        File currentDirParent = new File(mCurrentDirPath).getParentFile();
-        if (currentDirParent != null) {
-            showDir(currentDirParent.getPath());
-        } else {
-            showDir("");
-        }
-    }
-
-    /**
-     * Prevents the activity from recreating on change of orientation. The title needs to
-     * be recalculated.
-     */
-    @Override
-    public void onConfigurationChanged(Configuration newConfig) {
-        super.onConfigurationChanged(newConfig);
-
-        setTitle(shortenTitle(mCurrentDirPath));
-    }
-
-    @Override
-    protected Dialog onCreateDialog(int id, final Bundle args) {
-        Dialog dialog = null;
-        AlertDialog.Builder builder = new AlertDialog.Builder(this);
-
-        switch (id) {
-            case DIALOG_RUN_ABORT_DIR:
-                builder.setTitle(getText(R.string.dialog_run_abort_dir_title_prefix) + " " +
-                        args.getString("name"));
-                builder.setMessage(R.string.dialog_run_abort_dir_msg);
-                builder.setCancelable(true);
-
-                builder.setPositiveButton(R.string.dialog_run_abort_dir_ok_button,
-                        new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface dialog, int which) {
-                        removeDialog(DIALOG_RUN_ABORT_DIR);
-                        runAllTestsUnder(args.getString("relativePath"));
-                    }
-                });
-
-                builder.setNegativeButton(R.string.dialog_run_abort_dir_abort_button,
-                        new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface dialog, int which) {
-                        removeDialog(DIALOG_RUN_ABORT_DIR);
-                    }
-                });
-
-                dialog = builder.create();
-                dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
-                    @Override
-                    public void onCancel(DialogInterface dialog) {
-                        removeDialog(DIALOG_RUN_ABORT_DIR);
-                    }
-                });
-                break;
-        }
-
-        return dialog;
-    }
-
-    /**
-     * Loads the contents of dir into the list view.
-     *
-     * @param dirPath
-     *      directory to load into list view
-     */
-    private void showDir(String dirPath) {
-        mCurrentDirPath = dirPath;
-
-        /** Show progress dialog with a delay */
-        final Handler delayedDialogHandler = new Handler() {
-            @Override
-            public void handleMessage(Message msg) {
-                if (msg.what == MSG_SHOW_PROGRESS_DIALOG) {
-                    if (sProgressDialog == null) {
-                        sProgressDialog = new ProgressDialog(DirListActivity.this);
-                        sProgressDialog.setCancelable(false);
-                        sProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
-                        sProgressDialog.setTitle(R.string.dialog_progress_title);
-                        sProgressDialog.setMessage(getText(R.string.dialog_progress_msg));
-                    }
-                    sProgressDialog.show();
-                }
-            }
-        };
-        Message msgShowDialog = delayedDialogHandler.obtainMessage(MSG_SHOW_PROGRESS_DIALOG);
-        delayedDialogHandler.sendMessageDelayed(msgShowDialog, PROGRESS_DIALOG_DELAY_MS);
-
-        /** Delegate loading contents from SD card to a new thread */
-        new LoadListItemsThread(mCurrentDirPath, new Handler() {
-            @Override
-            public void handleMessage(Message msg) {
-                if (msg.what == MSG_LOADED_ITEMS) {
-                    setTitle(shortenTitle(mCurrentDirPath));
-                    delayedDialogHandler.removeMessages(MSG_SHOW_PROGRESS_DIALOG);
-                    if (sProgressDialog != null) {
-                        sProgressDialog.dismiss();
-                    }
-                    if (msg.obj == null) {
-                        Toast.makeText(DirListActivity.this, NO_RESPONSE_MESSAGE,
-                                Toast.LENGTH_LONG).show();
-                    } else {
-                        setListAdapter(new DirListAdapter(DirListActivity.this,
-                                (ListItem[])msg.obj));
-                    }
-                }
-            }
-        }).start();
-    }
-
-    /**
-     * TODO: find a neat way to determine number of characters that fit in the title
-     * bar.
-     * */
-    private String shortenTitle(String title) {
-        if (title.equals("")) {
-            return "Tests' root dir:";
-        }
-        int charCount = mListView.getWidth() / MEAN_TITLE_CHAR_SIZE;
-
-        if (title.length() > charCount) {
-            return "..." + title.substring(title.length() - charCount);
-        } else {
-            return title;
-        }
-    }
-
-    /**
-     * Return the array with contents of the given directory.
-     * First it contains the subfolders, then the files. Both sorted
-     * alphabetically.
-     *
-     * The dirPath is relative.
-     */
-    private ListItem[] getDirList(String dirPath) {
-        List<ListItem> subDirs = new ArrayList<ListItem>();
-        List<ListItem> subFiles = new ArrayList<ListItem>();
-
-        List<String> dirRelativePaths = FsUtils.getLayoutTestsDirContents(dirPath, false, true);
-        if (dirRelativePaths == null) {
-            return null;
-        }
-        for (String dirRelativePath : dirRelativePaths) {
-            if (FileFilter.isTestDir(new File(dirRelativePath).getName())) {
-                subDirs.add(new ListItem(dirRelativePath, true));
-            }
-        }
-
-        List<String> testRelativePaths = FsUtils.getLayoutTestsDirContents(dirPath, false, false);
-        if (testRelativePaths == null) {
-            return null;
-        }
-        for (String testRelativePath : testRelativePaths) {
-            if (FileFilter.isTestFile(new File(testRelativePath).getName())) {
-                subFiles.add(new ListItem(testRelativePath, false));
-            }
-        }
-
-        /** Concatenate the two lists */
-        subDirs.addAll(subFiles);
-
-        return subDirs.toArray(new ListItem[subDirs.size()]);
-    }
-}
diff --git a/tests/TileBenchmark/src/com/test/tilebenchmark/PerformanceTest.java b/tests/TileBenchmark/src/com/test/tilebenchmark/PerformanceTest.java
deleted file mode 100644
index 5763ad3..0000000
--- a/tests/TileBenchmark/src/com/test/tilebenchmark/PerformanceTest.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.test.tilebenchmark;
-
-import com.test.tilebenchmark.ProfileActivity.ProfileCallback;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-
-import android.content.res.Resources;
-import android.os.Bundle;
-import android.os.Environment;
-import android.test.ActivityInstrumentationTestCase2;
-import android.util.Log;
-import android.webkit.WebSettings;
-import android.widget.Spinner;
-
-public class PerformanceTest extends
-        ActivityInstrumentationTestCase2<ProfileActivity> {
-
-    public static class AnimStat {
-        double aggVal = 0;
-        double aggSqrVal = 0;
-        double count = 0;
-    }
-
-    private class StatAggregator extends PlaybackGraphs {
-        private HashMap<String, Double> mDataMap = new HashMap<String, Double>();
-        private HashMap<String, AnimStat> mAnimDataMap = new HashMap<String, AnimStat>();
-        private int mCount = 0;
-
-
-        public void aggregate() {
-            boolean inAnimTests = mAnimTests != null;
-            Resources resources = mWeb.getResources();
-            String animFramerateString = resources.getString(R.string.animation_framerate);
-            for (Map.Entry<String, Double> e : mSingleStats.entrySet()) {
-                String name = e.getKey();
-                if (inAnimTests) {
-                    if (name.equals(animFramerateString)) {
-                        // in animation testing phase, record animation framerate and aggregate
-                        // stats, differentiating on values of mAnimTestNr and mDoubleBuffering
-                        String fullName = ANIM_TEST_NAMES[mAnimTestNr] + " " + name;
-                        fullName += mDoubleBuffering ? " tiled" : " webkit";
-
-                        if (!mAnimDataMap.containsKey(fullName)) {
-                            mAnimDataMap.put(fullName, new AnimStat());
-                        }
-                        AnimStat statVals = mAnimDataMap.get(fullName);
-                        statVals.aggVal += e.getValue();
-                        statVals.aggSqrVal += e.getValue() * e.getValue();
-                        statVals.count += 1;
-                    }
-                } else {
-                    double aggVal = mDataMap.containsKey(name)
-                            ? mDataMap.get(name) : 0;
-                    mDataMap.put(name, aggVal + e.getValue());
-                }
-            }
-
-            if (inAnimTests) {
-                return;
-            }
-
-            mCount++;
-            for (int metricIndex = 0; metricIndex < Metrics.length; metricIndex++) {
-                for (int statIndex = 0; statIndex < Stats.length; statIndex++) {
-                    String metricLabel = resources.getString(
-                            Metrics[metricIndex].getLabelId());
-                    String statLabel = resources.getString(
-                            Stats[statIndex].getLabelId());
-
-                    String label = metricLabel + " " + statLabel;
-                    double aggVal = mDataMap.containsKey(label) ? mDataMap
-                            .get(label) : 0;
-
-                    aggVal += mStats[metricIndex][statIndex];
-                    mDataMap.put(label, aggVal);
-                }
-            }
-
-        }
-
-        // build the final bundle of results
-        public Bundle getBundle() {
-            Bundle b = new Bundle();
-            int count = (0 == mCount) ? Integer.MAX_VALUE : mCount;
-            for (Map.Entry<String, Double> e : mDataMap.entrySet()) {
-                b.putDouble(e.getKey(), e.getValue() / count);
-            }
-
-            for (Map.Entry<String, AnimStat> e : mAnimDataMap.entrySet()) {
-                String statName = e.getKey();
-                AnimStat statVals = e.getValue();
-
-                double avg = statVals.aggVal/statVals.count;
-                double stdDev = Math.sqrt((statVals.aggSqrVal / statVals.count) - avg * avg);
-
-                b.putDouble(statName, avg);
-                b.putDouble(statName + " STD DEV", stdDev);
-            }
-
-            return b;
-        }
-    }
-
-    ProfileActivity mActivity;
-    ProfiledWebView mWeb;
-    Spinner mMovementSpinner;
-    StatAggregator mStats;
-
-    private static final String LOGTAG = "PerformanceTest";
-    private static final String TEST_LOCATION = "webkit/page_cycler";
-    private static final String URL_PREFIX = "file://";
-    private static final String URL_POSTFIX = "/index.html?skip=true";
-    private static final int MAX_ITERATIONS = 4;
-    private static final String SCROLL_TEST_DIRS[] = {
-        "alexa25_2011"
-    };
-    private static final String ANIM_TEST_DIRS[] = {
-        "dhtml"
-    };
-
-    public PerformanceTest() {
-        super(ProfileActivity.class);
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mActivity = getActivity();
-        mWeb = (ProfiledWebView) mActivity.findViewById(R.id.web);
-        mMovementSpinner = (Spinner) mActivity.findViewById(R.id.movement);
-        mStats = new StatAggregator();
-
-        // use mStats as a condition variable between the UI thread and
-        // this(the testing) thread
-        mActivity.setCallback(new ProfileCallback() {
-            @Override
-            public void profileCallback(RunData data) {
-                mStats.setData(data);
-                synchronized (mStats) {
-                    mStats.notify();
-                }
-            }
-        });
-
-    }
-
-    private boolean loadUrl(final String url) {
-        try {
-            Log.d(LOGTAG, "test starting for url " + url);
-            mActivity.runOnUiThread(new Runnable() {
-                @Override
-                public void run() {
-                    mWeb.loadUrl(url);
-                }
-            });
-            synchronized (mStats) {
-                mStats.wait();
-            }
-
-            mStats.aggregate();
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-            return false;
-        }
-        return true;
-    }
-
-    private boolean validTest(String nextTest) {
-        // if testing animations, test must be in mAnimTests
-        if (mAnimTests == null)
-            return true;
-
-        for (String test : mAnimTests) {
-            if (test.equals(nextTest)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    private boolean runIteration(String[] testDirs) {
-        File sdFile = Environment.getExternalStorageDirectory();
-        for (String testDirName : testDirs) {
-            File testDir = new File(sdFile, TEST_LOCATION + "/" + testDirName);
-            Log.d(LOGTAG, "Testing dir: '" + testDir.getAbsolutePath()
-                    + "', exists=" + testDir.exists());
-
-            for (File siteDir : testDir.listFiles()) {
-                if (!siteDir.isDirectory() || !validTest(siteDir.getName())) {
-                    continue;
-                }
-
-                if (!loadUrl(URL_PREFIX + siteDir.getAbsolutePath()
-                        + URL_POSTFIX)) {
-                    return false;
-                }
-            }
-        }
-        return true;
-    }
-
-    private boolean  runTestDirs(String[] testDirs) {
-        for (int i = 0; i < MAX_ITERATIONS; i++)
-            if (!runIteration(testDirs)) {
-                return false;
-            }
-        return true;
-    }
-
-    private void pushDoubleBuffering() {
-        getInstrumentation().runOnMainSync(new Runnable() {
-            public void run() {
-                mWeb.setDoubleBuffering(mDoubleBuffering);
-            }
-        });
-    }
-
-    private void setScrollingTestingMode(final boolean scrolled) {
-        getInstrumentation().runOnMainSync(new Runnable() {
-            public void run() {
-                mMovementSpinner.setSelection(scrolled ? 0 : 2);
-            }
-        });
-    }
-
-
-    private String[] mAnimTests = null;
-    private int mAnimTestNr = -1;
-    private boolean mDoubleBuffering = true;
-    private static final String[] ANIM_TEST_NAMES = {
-        "slow", "fast"
-    };
-    private static final String[][] ANIM_TESTS = {
-        {"scrolling", "replaceimages", "layers5", "layers1"},
-        {"slidingballs", "meter", "slidein", "fadespacing", "colorfade",
-                "mozilla", "movingtext", "diagball", "zoom", "imageslide"},
-    };
-
-    private boolean checkMedia() {
-        String state = Environment.getExternalStorageState();
-
-        if (!Environment.MEDIA_MOUNTED.equals(state)
-                && !Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
-            Log.d(LOGTAG, "ARG Can't access sd card!");
-            // Can't read the SD card, fail and die!
-            getInstrumentation().sendStatus(1, null);
-            return false;
-        }
-        return true;
-    }
-
-    public void testMetrics() {
-        setScrollingTestingMode(true);
-        if (checkMedia() && runTestDirs(SCROLL_TEST_DIRS)) {
-            getInstrumentation().sendStatus(0, mStats.getBundle());
-        } else {
-            getInstrumentation().sendStatus(1, null);
-        }
-    }
-
-    public void testMetricsMinimalMemory() {
-        mActivity.runOnUiThread(new Runnable() {
-            @Override
-            public void run() {
-                mWeb.setUseMinimalMemory(true);
-            }
-        });
-
-        setScrollingTestingMode(true);
-        if (checkMedia() && runTestDirs(SCROLL_TEST_DIRS)) {
-            getInstrumentation().sendStatus(0, mStats.getBundle());
-        } else {
-            getInstrumentation().sendStatus(1, null);
-        }
-    }
-
-    private boolean runAnimationTests() {
-        for (int doubleBuffer = 0; doubleBuffer <= 1; doubleBuffer++) {
-            mDoubleBuffering = doubleBuffer == 1;
-            pushDoubleBuffering();
-            for (mAnimTestNr = 0; mAnimTestNr < ANIM_TESTS.length; mAnimTestNr++) {
-                mAnimTests = ANIM_TESTS[mAnimTestNr];
-                if (!runTestDirs(ANIM_TEST_DIRS)) {
-                    return false;
-                }
-            }
-        }
-        return true;
-    }
-
-    public void testAnimations() {
-        // instead of autoscrolling, load each page until either an timer fires,
-        // or the animation signals complete via javascript
-        setScrollingTestingMode(false);
-
-        if (checkMedia() && runAnimationTests()) {
-            getInstrumentation().sendStatus(0, mStats.getBundle());
-        } else {
-            getInstrumentation().sendStatus(1, null);
-        }
-    }
-}
diff --git a/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackActivity.java b/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackActivity.java
deleted file mode 100644
index 1eb1c00..0000000
--- a/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackActivity.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.test.tilebenchmark;
-
-import android.app.Activity;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.view.GestureDetector.SimpleOnGestureListener;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.Button;
-import android.widget.SeekBar;
-import android.widget.SeekBar.OnSeekBarChangeListener;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-
-/**
- * Interface for playing back WebView tile rendering status. Draws viewport and
- * states of tiles and statistics for off-line analysis.
- */
-public class PlaybackActivity extends Activity {
-    private static final float SCROLL_SCALER = 0.125f;
-
-    PlaybackView mPlaybackView;
-    SeekBar mSeekBar;
-    Button mForward;
-    Button mBackward;
-    TextView mFrameDisplay;
-
-    private int mFrame = -1;
-    private int mFrameMax;
-
-    private class TouchFrameChangeListener extends SimpleOnGestureListener {
-        float mDist = 0;
-
-        @Override
-        public boolean onScroll(MotionEvent e1, MotionEvent e2,
-                float distanceX, float distanceY) {
-            // aggregate scrolls so that small ones can add up
-            mDist += distanceY * SCROLL_SCALER;
-            int intComponent = (int) Math.floor(Math.abs(mDist));
-            if (intComponent >= 1) {
-                int scrollDist = (mDist > 0) ? intComponent : -intComponent;
-                setFrame(null, mFrame + scrollDist);
-                mDist -= scrollDist;
-            }
-            return super.onScroll(e1, e2, distanceX, distanceY);
-        }
-    };
-
-    private class SeekFrameChangeListener implements OnSeekBarChangeListener {
-        @Override
-        public void onStopTrackingTouch(SeekBar seekBar) {
-        }
-
-        @Override
-        public void onStartTrackingTouch(SeekBar seekBar) {
-        }
-
-        @Override
-        public void onProgressChanged(SeekBar seekBar, int progress,
-                boolean fromUser) {
-            setFrame(seekBar, progress);
-        }
-    };
-
-    private class LoadFileTask extends AsyncTask<String, Void, RunData> {
-        @Override
-        protected RunData doInBackground(String... params) {
-            RunData data = null;
-            try {
-                FileInputStream fis = openFileInput(params[0]);
-                ObjectInputStream in = new ObjectInputStream(fis);
-                data = (RunData) in.readObject();
-                in.close();
-            } catch (IOException ex) {
-                ex.printStackTrace();
-            } catch (ClassNotFoundException ex) {
-                ex.printStackTrace();
-            }
-            return data;
-        }
-
-        @Override
-        protected void onPostExecute(RunData data) {
-            if (data == null) {
-                Toast.makeText(getApplicationContext(),
-                        getResources().getString(R.string.error_no_data),
-                        Toast.LENGTH_LONG).show();
-                return;
-            }
-            mPlaybackView.setData(data);
-
-            mFrameMax = data.frames.length - 1;
-            mSeekBar.setMax(mFrameMax);
-
-            setFrame(null, 0);
-        }
-    }
-
-    private void setFrame(View changer, int f) {
-        if (f < 0) {
-            f = 0;
-        } else if (f > mFrameMax) {
-            f = mFrameMax;
-        }
-
-        if (mFrame == f) {
-            return;
-        }
-
-        mFrame = f;
-        mForward.setEnabled(mFrame != mFrameMax);
-        mBackward.setEnabled(mFrame != 0);
-        if (changer != mSeekBar) {
-            mSeekBar.setProgress(mFrame);
-        }
-        mFrameDisplay.setText(Integer.toString(mFrame));
-        mPlaybackView.setFrame(mFrame);
-    };
-
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.playback);
-
-        mPlaybackView = (PlaybackView) findViewById(R.id.playback);
-        mSeekBar = (SeekBar) findViewById(R.id.seek_bar);
-        mForward = (Button) findViewById(R.id.forward);
-        mBackward = (Button) findViewById(R.id.backward);
-        mFrameDisplay = (TextView) findViewById(R.id.frame_display);
-
-        mForward.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                setFrame(v, mFrame + 1);
-            }
-        });
-
-        mBackward.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                setFrame(v, mFrame - 1);
-            }
-        });
-
-        mSeekBar.setOnSeekBarChangeListener(new SeekFrameChangeListener());
-
-        mPlaybackView.setOnGestureListener(new TouchFrameChangeListener());
-
-        new LoadFileTask().execute(ProfileActivity.TEMP_FILENAME);
-    }
-}
diff --git a/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackGraphs.java b/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackGraphs.java
deleted file mode 100644
index 065e86f..0000000
--- a/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackGraphs.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.test.tilebenchmark;
-
-import android.content.res.Resources;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.graphics.Rect;
-import android.graphics.drawable.ShapeDrawable;
-
-import com.test.tilebenchmark.RunData.TileData;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-
-public class PlaybackGraphs {
-    private static final int BAR_WIDTH = PlaybackView.TILE_SCALE * 3;
-    private static final float CANVAS_SCALE = 0.2f;
-    private static final double IDEAL_FRAMES = 60;
-    private static final int LABELOFFSET = 100;
-    private static Paint whiteLabels;
-
-    private static double viewportCoverage(TileData view, TileData tile) {
-        if (tile.left < (view.right * view.scale)
-                && tile.right >= (view.left * view.scale)
-                && tile.top < (view.bottom * view.scale)
-                && tile.bottom >= (view.top * view.scale)) {
-            return 1.0f;
-        }
-        return 0.0f;
-    }
-
-    protected interface MetricGen {
-        public double getValue(TileData[] frame);
-
-        public double getMax();
-
-        public int getLabelId();
-    };
-
-    protected static MetricGen[] Metrics = new MetricGen[] {
-            new MetricGen() {
-                // framerate graph
-                @Override
-                public double getValue(TileData[] frame) {
-                    int renderTimeUS = frame[0].level;
-                    return 1.0e6f / renderTimeUS;
-                }
-
-                @Override
-                public double getMax() {
-                    return IDEAL_FRAMES;
-                }
-
-                @Override
-                public int getLabelId() {
-                    return R.string.frames_per_second;
-                }
-            }, new MetricGen() {
-                // coverage graph
-                @Override
-                public double getValue(TileData[] frame) {
-                    double total = 0, totalCount = 0;
-                    for (int tileID = 1; tileID < frame.length; tileID++) {
-                        TileData data = frame[tileID];
-                        double coverage = viewportCoverage(frame[0], data);
-                        total += coverage * (data.isReady ? 100 : 0);
-                        totalCount += coverage;
-                    }
-                    if (totalCount == 0) {
-                        return -1;
-                    }
-                    return total / totalCount;
-                }
-
-                @Override
-                public double getMax() {
-                    return 100;
-                }
-
-                @Override
-                public int getLabelId() {
-                    return R.string.viewport_coverage;
-                }
-            }
-    };
-
-    protected interface StatGen {
-        public double getValue(double sortedValues[]);
-
-        public int getLabelId();
-    }
-
-    public static double getPercentile(double sortedValues[], double ratioAbove) {
-        if (sortedValues.length == 0)
-            return -1;
-
-        double index = ratioAbove * (sortedValues.length - 1);
-        int intIndex = (int) Math.floor(index);
-        if (index == intIndex) {
-            return sortedValues[intIndex];
-        }
-        double alpha = index - intIndex;
-        return sortedValues[intIndex] * (1 - alpha)
-                + sortedValues[intIndex + 1] * (alpha);
-    }
-
-    public static double getMean(double sortedValues[]) {
-        if (sortedValues.length == 0)
-            return -1;
-
-        double agg = 0;
-        for (double val : sortedValues) {
-            agg += val;
-        }
-        return agg / sortedValues.length;
-    }
-
-    public static double getStdDev(double sortedValues[]) {
-        if (sortedValues.length == 0)
-            return -1;
-
-        double agg = 0;
-        double sqrAgg = 0;
-        for (double val : sortedValues) {
-            agg += val;
-            sqrAgg += val*val;
-        }
-        double mean = agg / sortedValues.length;
-        return Math.sqrt((sqrAgg / sortedValues.length) - (mean * mean));
-    }
-
-    protected static StatGen[] Stats = new StatGen[] {
-            new StatGen() {
-                @Override
-                public double getValue(double[] sortedValues) {
-                    return getPercentile(sortedValues, 0.25);
-                }
-
-                @Override
-                public int getLabelId() {
-                    return R.string.percentile_25;
-                }
-            }, new StatGen() {
-                @Override
-                public double getValue(double[] sortedValues) {
-                    return getPercentile(sortedValues, 0.5);
-                }
-
-                @Override
-                public int getLabelId() {
-                    return R.string.percentile_50;
-                }
-            }, new StatGen() {
-                @Override
-                public double getValue(double[] sortedValues) {
-                    return getPercentile(sortedValues, 0.75);
-                }
-
-                @Override
-                public int getLabelId() {
-                    return R.string.percentile_75;
-                }
-            }, new StatGen() {
-                @Override
-                public double getValue(double[] sortedValues) {
-                    return getStdDev(sortedValues);
-                }
-
-                @Override
-                public int getLabelId() {
-                    return R.string.std_dev;
-                }
-            }, new StatGen() {
-                @Override
-                public double getValue(double[] sortedValues) {
-                    return getMean(sortedValues);
-                }
-
-                @Override
-                public int getLabelId() {
-                    return R.string.mean;
-                }
-            },
-    };
-
-    public PlaybackGraphs() {
-        whiteLabels = new Paint();
-        whiteLabels.setColor(Color.WHITE);
-        whiteLabels.setTextSize(PlaybackView.TILE_SCALE / 3);
-    }
-
-    private ArrayList<ShapeDrawable> mShapes = new ArrayList<ShapeDrawable>();
-    protected final double[][] mStats = new double[Metrics.length][Stats.length];
-    protected HashMap<String, Double> mSingleStats;
-
-    private void gatherFrameMetric(int metricIndex, double metricValues[], RunData data) {
-        // create graph out of rectangles, one per frame
-        int lastBar = 0;
-        for (int frameIndex = 0; frameIndex < data.frames.length; frameIndex++) {
-            TileData frame[] = data.frames[frameIndex];
-            int newBar = (int)((frame[0].top + frame[0].bottom) * frame[0].scale / 2.0f);
-
-            MetricGen s = Metrics[metricIndex];
-            double absoluteValue = s.getValue(frame);
-            double relativeValue = absoluteValue / s.getMax();
-            relativeValue = Math.min(1,relativeValue);
-            relativeValue = Math.max(0,relativeValue);
-            int rightPos = (int) (-BAR_WIDTH * metricIndex);
-            int leftPos = (int) (-BAR_WIDTH * (metricIndex + relativeValue));
-
-            ShapeDrawable graphBar = new ShapeDrawable();
-            graphBar.getPaint().setColor(Color.BLUE);
-            graphBar.setBounds(leftPos, lastBar, rightPos, newBar);
-
-            mShapes.add(graphBar);
-            metricValues[frameIndex] = absoluteValue;
-            lastBar = newBar;
-        }
-    }
-
-    public void setData(RunData data) {
-        mShapes.clear();
-        double metricValues[] = new double[data.frames.length];
-
-        mSingleStats = data.singleStats;
-
-        if (data.frames.length == 0) {
-            return;
-        }
-
-        for (int metricIndex = 0; metricIndex < Metrics.length; metricIndex++) {
-            // calculate metric based on list of frames
-            gatherFrameMetric(metricIndex, metricValues, data);
-
-            // store aggregate statistics per metric (median, and similar)
-            Arrays.sort(metricValues);
-            for (int statIndex = 0; statIndex < Stats.length; statIndex++) {
-                mStats[metricIndex][statIndex] =
-                        Stats[statIndex].getValue(metricValues);
-            }
-        }
-    }
-
-    public void drawVerticalShiftedShapes(Canvas canvas,
-            ArrayList<ShapeDrawable> shapes) {
-        // Shapes drawn here are drawn relative to the viewRect
-        Rect viewRect = shapes.get(shapes.size() - 1).getBounds();
-        canvas.translate(0, 5 * PlaybackView.TILE_SCALE - viewRect.top);
-
-        for (ShapeDrawable shape : mShapes) {
-            shape.draw(canvas);
-        }
-        for (ShapeDrawable shape : shapes) {
-            shape.draw(canvas);
-        }
-    }
-
-    public void draw(Canvas canvas, ArrayList<ShapeDrawable> shapes,
-            ArrayList<String> strings, Resources resources) {
-        canvas.scale(CANVAS_SCALE, CANVAS_SCALE);
-
-        canvas.translate(BAR_WIDTH * Metrics.length, 0);
-
-        canvas.save();
-        drawVerticalShiftedShapes(canvas, shapes);
-        canvas.restore();
-
-        for (int metricIndex = 0; metricIndex < Metrics.length; metricIndex++) {
-            String label = resources.getString(
-                    Metrics[metricIndex].getLabelId());
-            int xPos = (metricIndex + 1) * -BAR_WIDTH;
-            int yPos = LABELOFFSET;
-            canvas.drawText(label, xPos, yPos, whiteLabels);
-            for (int statIndex = 0; statIndex < Stats.length; statIndex++) {
-                String statLabel = resources.getString(
-                        Stats[statIndex].getLabelId()).substring(0,3);
-                label = statLabel + " " + resources.getString(
-                        R.string.format_stat, mStats[metricIndex][statIndex]);
-                yPos = LABELOFFSET + (1 + statIndex) * PlaybackView.TILE_SCALE
-                        / 2;
-                canvas.drawText(label, xPos, yPos, whiteLabels);
-            }
-        }
-        for (int stringIndex = 0; stringIndex < strings.size(); stringIndex++) {
-            int yPos = LABELOFFSET + stringIndex * PlaybackView.TILE_SCALE / 2;
-            canvas.drawText(strings.get(stringIndex), 0, yPos, whiteLabels);
-        }
-    }
-}
diff --git a/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackView.java b/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackView.java
deleted file mode 100644
index 5459c1f..0000000
--- a/tests/TileBenchmark/src/com/test/tilebenchmark/PlaybackView.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.test.tilebenchmark;
-
-import android.animation.ArgbEvaluator;
-import android.animation.ObjectAnimator;
-import android.animation.ValueAnimator;
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.graphics.drawable.ShapeDrawable;
-import android.util.AttributeSet;
-import android.view.GestureDetector;
-import android.view.GestureDetector.OnGestureListener;
-import android.view.MotionEvent;
-import android.view.View;
-
-import com.test.tilebenchmark.RunData.TileData;
-
-import java.util.ArrayList;
-
-public class PlaybackView extends View {
-    public static final int TILE_SCALE = 256;
-    private static final int INVAL_FLAG = -2;
-    private static final int INVAL_CYCLE = 250;
-
-    private Paint levelPaint = null, coordPaint = null, goldPaint = null;
-    private PlaybackGraphs mGraphs;
-
-    private ArrayList<ShapeDrawable> mTempShapes = new ArrayList<ShapeDrawable>();
-    private RunData mProfData = null;
-    private GestureDetector mGestureDetector = null;
-    private ArrayList<String> mRenderStrings = new ArrayList<String>();
-
-    private class TileDrawable extends ShapeDrawable {
-        TileData tile;
-        String label;
-
-        public TileDrawable(TileData t, int colorId) {
-            this.tile = t;
-            getPaint().setColor(getResources().getColor(colorId));
-            if (colorId == R.color.ready_tile
-                    || colorId == R.color.unready_tile) {
-
-                label = (int) (t.left / TILE_SCALE) + ", "
-                        + (int) (t.top / TILE_SCALE);
-                // ignore scale value for tiles
-                setBounds(t.left, t.top,
-                        t.right, t.bottom);
-            } else {
-                setBounds((int) (t.left * t.scale),
-                        (int) (t.top * t.scale),
-                        (int) (t.right * t.scale),
-                        (int) (t.bottom * t.scale));
-            }
-        }
-
-        @SuppressWarnings("unused")
-        public void setColor(int color) {
-            getPaint().setColor(color);
-        }
-
-        @Override
-        public void draw(Canvas canvas) {
-            super.draw(canvas);
-            if (label != null) {
-                canvas.drawText(Integer.toString(tile.level), getBounds().left,
-                        getBounds().bottom, levelPaint);
-                canvas.drawText(label, getBounds().left,
-                        ((getBounds().bottom + getBounds().top) / 2),
-                        coordPaint);
-            }
-        }
-    }
-
-    public PlaybackView(Context context) {
-        super(context);
-        init();
-    }
-
-    public PlaybackView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        init();
-    }
-
-    public PlaybackView(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-        init();
-    }
-
-    public void setOnGestureListener(OnGestureListener gl) {
-        mGestureDetector = new GestureDetector(getContext(), gl);
-    }
-
-    @Override
-    public boolean onTouchEvent(MotionEvent event) {
-        mGestureDetector.onTouchEvent(event);
-        return true;
-    }
-
-    private void init() {
-        levelPaint = new Paint();
-        levelPaint.setColor(Color.WHITE);
-        levelPaint.setTextSize(TILE_SCALE / 2);
-        coordPaint = new Paint();
-        coordPaint.setColor(Color.BLACK);
-        coordPaint.setTextSize(TILE_SCALE / 3);
-        goldPaint = new Paint();
-        goldPaint.setColor(0xffa0e010);
-        mGraphs = new PlaybackGraphs();
-    }
-
-    @Override
-    protected void onDraw(Canvas canvas) {
-        super.onDraw(canvas);
-
-        if (mTempShapes == null || mTempShapes.isEmpty()) {
-            return;
-        }
-
-        mGraphs.draw(canvas, mTempShapes, mRenderStrings, getResources());
-        invalidate(); // may have animations, force redraw
-    }
-
-    private String statString(int labelId, int value) {
-        return getResources().getString(R.string.format_stat_name,
-                getResources().getString(labelId), value);
-    }
-    private String tileString(int formatStringId, TileData t) {
-        return getResources().getString(formatStringId,
-                t.left, t.top, t.right, t.bottom);
-    }
-
-    public int setFrame(int frame) {
-        if (mProfData == null || mProfData.frames.length == 0) {
-            return 0;
-        }
-
-        int readyTiles = 0, unreadyTiles = 0, unplacedTiles = 0, numInvals = 0;
-        mTempShapes.clear();
-        mRenderStrings.clear();
-
-        // create tile shapes (as they're drawn on bottom)
-        for (TileData t : mProfData.frames[frame]) {
-            if (t == mProfData.frames[frame][0]){
-                // viewport 'tile', add coords to render strings
-                mRenderStrings.add(tileString(R.string.format_view_pos, t));
-            } else  if (t.level != INVAL_FLAG) {
-                int colorId;
-                if (t.isReady) {
-                    readyTiles++;
-                    colorId = R.color.ready_tile;
-                } else {
-                    unreadyTiles++;
-                    colorId = R.color.unready_tile;
-                }
-                if (t.left < 0 || t.top < 0) {
-                    unplacedTiles++;
-                }
-                mTempShapes.add(new TileDrawable(t, colorId));
-            } else {
-                // inval 'tile', count and add coords to render strings
-                numInvals++;
-                mRenderStrings.add(tileString(R.string.format_inval_pos, t));
-            }
-        }
-
-        // create invalidate shapes (drawn above tiles)
-        int invalId = 0;
-        for (TileData t : mProfData.frames[frame]) {
-            if (t.level == INVAL_FLAG && t != mProfData.frames[frame][0]) {
-                TileDrawable invalShape = new TileDrawable(t,
-                        R.color.inval_region_start);
-                ValueAnimator tileAnimator = ObjectAnimator.ofInt(invalShape,
-                        "color",
-                        getResources().getColor(R.color.inval_region_start),
-                        getResources().getColor(R.color.inval_region_stop));
-                tileAnimator.setDuration(numInvals * INVAL_CYCLE);
-                tileAnimator.setEvaluator(new ArgbEvaluator());
-                tileAnimator.setRepeatCount(ValueAnimator.INFINITE);
-                tileAnimator.setRepeatMode(ValueAnimator.RESTART);
-                float delay = (float) (invalId) * INVAL_CYCLE;
-                tileAnimator.setStartDelay((int) delay);
-                invalId++;
-                tileAnimator.start();
-
-                mTempShapes.add(invalShape);
-            }
-        }
-
-        mRenderStrings.add(statString(R.string.ready_tiles, readyTiles));
-        mRenderStrings.add(statString(R.string.unready_tiles, unreadyTiles));
-        mRenderStrings.add(statString(R.string.unplaced_tiles, unplacedTiles));
-        mRenderStrings.add(statString(R.string.number_invalidates, numInvals));
-
-        // draw view rect (using first TileData object, on top)
-        TileDrawable viewShape = new TileDrawable(mProfData.frames[frame][0],
-                R.color.view);
-        mTempShapes.add(viewShape);
-        this.invalidate();
-        return frame;
-    }
-
-    public void setData(RunData tileProfilingData) {
-        mProfData = tileProfilingData;
-
-        mGraphs.setData(mProfData);
-    }
-}
diff --git a/tests/TileBenchmark/src/com/test/tilebenchmark/ProfileActivity.java b/tests/TileBenchmark/src/com/test/tilebenchmark/ProfileActivity.java
deleted file mode 100644
index 2e77157..0000000
--- a/tests/TileBenchmark/src/com/test/tilebenchmark/ProfileActivity.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.test.tilebenchmark;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.CountDownTimer;
-import android.util.Log;
-import android.util.Pair;
-import android.view.KeyEvent;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.webkit.WebView;
-import android.webkit.WebViewClient;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemSelectedListener;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.Spinner;
-import android.widget.TextView;
-import android.widget.TextView.OnEditorActionListener;
-import android.widget.ToggleButton;
-
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.ObjectOutputStream;
-
-/**
- * Interface for profiling the webview's scrolling, with simple controls on how
- * to scroll, and what content to load.
- */
-public class ProfileActivity extends Activity {
-
-    private static final int TIMED_RECORD_MILLIS = 2000;
-
-    public interface ProfileCallback {
-        public void profileCallback(RunData data);
-    }
-
-    public static final String TEMP_FILENAME = "profile.tiles";
-
-    Button mInspectButton;
-    ToggleButton mCaptureButton;
-    Spinner mVelocitySpinner;
-    Spinner mMovementSpinner;
-    EditText mUrl;
-    ProfiledWebView mWeb;
-    ProfileCallback mCallback;
-
-    LoggingWebViewClient mLoggingWebViewClient = new LoggingWebViewClient();
-    AutoLoggingWebViewClient mAutoLoggingWebViewClient = new AutoLoggingWebViewClient();
-    TimedLoggingWebViewClient mTimedLoggingWebViewClient = new TimedLoggingWebViewClient();
-
-    private enum TestingState {
-        NOT_TESTING,
-        PRE_TESTING,
-        START_TESTING,
-        STOP_TESTING,
-        SAVED_TESTING
-    };
-
-    private class VelocitySelectedListener implements OnItemSelectedListener {
-        @Override
-        public void onItemSelected(AdapterView<?> parent, View view,
-                int position, long id) {
-            String speedStr = parent.getItemAtPosition(position).toString();
-            int speedInt = Integer.parseInt(speedStr);
-            mWeb.setAutoScrollSpeed(speedInt);
-        }
-
-        @Override
-        public void onNothingSelected(AdapterView<?> parent) {
-        }
-    }
-
-    private class MovementSelectedListener implements OnItemSelectedListener {
-        @Override
-        public void onItemSelected(AdapterView<?> parent, View view,
-                int position, long id) {
-            String movementStr = parent.getItemAtPosition(position).toString();
-            if (movementStr == getResources().getString(R.string.movement_auto_scroll)) {
-                mWeb.setWebViewClient(mAutoLoggingWebViewClient);
-                mCaptureButton.setEnabled(false);
-                mVelocitySpinner.setEnabled(true);
-            } else if (movementStr == getResources().getString(R.string.movement_manual)) {
-                mWeb.setWebViewClient(mLoggingWebViewClient);
-                mCaptureButton.setEnabled(true);
-                mVelocitySpinner.setEnabled(false);
-            } else if (movementStr == getResources().getString(R.string.movement_timed)) {
-                mWeb.setWebViewClient(mTimedLoggingWebViewClient);
-                mCaptureButton.setEnabled(false);
-                mVelocitySpinner.setEnabled(false);
-            }
-        }
-
-        @Override
-        public void onNothingSelected(AdapterView<?> parent) {
-        }
-    }
-
-    private class LoggingWebViewClient extends WebViewClient {
-        @Override
-        public boolean shouldOverrideUrlLoading(WebView view, String url) {
-            return false;
-        }
-
-        @Override
-        public void onPageStarted(WebView view, String url, Bitmap favicon) {
-            super.onPageStarted(view, url, favicon);
-            mUrl.setText(url);
-        }
-
-        @Override
-        public void onPageFinished(WebView view, String url) {
-            super.onPageFinished(view, url);
-            view.requestFocus();
-            ((ProfiledWebView)view).onPageFinished();
-        }
-    }
-
-    private class AutoLoggingWebViewClient extends LoggingWebViewClient {
-        @Override
-        public void onPageFinished(WebView view, String url) {
-            super.onPageFinished(view, url);
-            startViewProfiling(true);
-        }
-
-        @Override
-        public void onPageStarted(WebView view, String url, Bitmap favicon) {
-            super.onPageStarted(view, url, favicon);
-            setTestingState(TestingState.PRE_TESTING);
-        }
-    }
-
-    private class TimedLoggingWebViewClient extends LoggingWebViewClient {
-        @Override
-        public void onPageFinished(WebView view, String url) {
-            super.onPageFinished(view, url);
-            startViewProfiling(false);
-
-            // after a fixed time after page finished, stop testing
-            new CountDownTimer(TIMED_RECORD_MILLIS, TIMED_RECORD_MILLIS) {
-                @Override
-                public void onTick(long millisUntilFinished) {
-                }
-
-                @Override
-                public void onFinish() {
-                    mWeb.stopScrollTest();
-                }
-            }.start();
-        }
-
-        @Override
-        public void onPageStarted(WebView view, String url, Bitmap favicon) {
-            super.onPageStarted(view, url, favicon);
-            setTestingState(TestingState.PRE_TESTING);
-        }
-    }
-
-    private class StoreFileTask extends
-            AsyncTask<Pair<String, RunData>, Void, Void> {
-
-        @Override
-        protected Void doInBackground(Pair<String, RunData>... params) {
-            try {
-                FileOutputStream fos = openFileOutput(params[0].first,
-                        Context.MODE_PRIVATE);
-                ObjectOutputStream out = new ObjectOutputStream(fos);
-                out.writeObject(params[0].second);
-                out.close();
-            } catch (IOException ex) {
-                ex.printStackTrace();
-            }
-            return null;
-        }
-
-        @Override
-        protected void onPostExecute(Void v) {
-            setTestingState(TestingState.SAVED_TESTING);
-        }
-    }
-
-    public void setTestingState(TestingState state) {
-        switch (state) {
-            case NOT_TESTING:
-                mUrl.setBackgroundResource(R.color.background_not_testing);
-                mInspectButton.setEnabled(true);
-                mMovementSpinner.setEnabled(true);
-                break;
-            case PRE_TESTING:
-                mInspectButton.setEnabled(false);
-                mMovementSpinner.setEnabled(false);
-                break;
-            case START_TESTING:
-                mCaptureButton.setChecked(true);
-                mUrl.setBackgroundResource(R.color.background_start_testing);
-                mInspectButton.setEnabled(false);
-                mMovementSpinner.setEnabled(false);
-                break;
-            case STOP_TESTING:
-                mCaptureButton.setChecked(false);
-                mUrl.setBackgroundResource(R.color.background_stop_testing);
-                break;
-            case SAVED_TESTING:
-                mInspectButton.setEnabled(true);
-                mMovementSpinner.setEnabled(true);
-                break;
-        }
-    }
-
-    /** auto - automatically scroll. */
-    private void startViewProfiling(boolean auto) {
-        // toggle capture button to indicate capture state to user
-        mWeb.startScrollTest(mCallback, auto);
-        setTestingState(TestingState.START_TESTING);
-    }
-
-    /** Called when the activity is first created. */
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.main);
-        mInspectButton = (Button) findViewById(R.id.inspect);
-        mCaptureButton = (ToggleButton) findViewById(R.id.capture);
-        mVelocitySpinner = (Spinner) findViewById(R.id.velocity);
-        mMovementSpinner = (Spinner) findViewById(R.id.movement);
-        mUrl = (EditText) findViewById(R.id.url);
-        mWeb = (ProfiledWebView) findViewById(R.id.web);
-        setCallback(new ProfileCallback() {
-            @SuppressWarnings("unchecked")
-            @Override
-            public void profileCallback(RunData data) {
-                new StoreFileTask().execute(new Pair<String, RunData>(
-                        TEMP_FILENAME, data));
-                Log.d("ProfileActivity", "stored " + data.frames.length + " frames in file");
-                setTestingState(TestingState.STOP_TESTING);
-            }
-        });
-
-        // Inspect button (opens PlaybackActivity)
-        mInspectButton.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                startActivity(new Intent(ProfileActivity.this,
-                        PlaybackActivity.class));
-            }
-        });
-
-        // Velocity spinner
-        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
-                this, R.array.velocity_array,
-                android.R.layout.simple_spinner_item);
-        adapter.setDropDownViewResource(
-                android.R.layout.simple_spinner_dropdown_item);
-        mVelocitySpinner.setAdapter(adapter);
-        mVelocitySpinner.setOnItemSelectedListener(
-                new VelocitySelectedListener());
-        mVelocitySpinner.setSelection(3);
-
-        // Movement spinner
-        String content[] = {
-                getResources().getString(R.string.movement_auto_scroll),
-                getResources().getString(R.string.movement_manual),
-                getResources().getString(R.string.movement_timed)
-        };
-        adapter = new ArrayAdapter<CharSequence>(this,
-                android.R.layout.simple_spinner_item, content);
-        adapter.setDropDownViewResource(
-                android.R.layout.simple_spinner_dropdown_item);
-        mMovementSpinner.setAdapter(adapter);
-        mMovementSpinner.setOnItemSelectedListener(
-                new MovementSelectedListener());
-        mMovementSpinner.setSelection(0);
-
-        // Capture toggle button
-        mCaptureButton.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                if (mCaptureButton.isChecked()) {
-                    startViewProfiling(false);
-                } else {
-                    mWeb.stopScrollTest();
-                }
-            }
-        });
-
-        // Custom profiling WebView
-        mWeb.init(this);
-        mWeb.setWebViewClient(new LoggingWebViewClient());
-
-        // URL text entry
-        mUrl.setOnEditorActionListener(new OnEditorActionListener() {
-            public boolean onEditorAction(TextView v, int actionId,
-                    KeyEvent event) {
-                String url = mUrl.getText().toString();
-                mWeb.loadUrl(url);
-                mWeb.requestFocus();
-                return true;
-            }
-        });
-
-        setTestingState(TestingState.NOT_TESTING);
-    }
-
-    public void setCallback(ProfileCallback callback) {
-        mCallback = callback;
-    }
-
-    @Override
-    public boolean onKeyDown(int keyCode, KeyEvent event) {
-        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWeb.canGoBack()) {
-            mWeb.goBack();
-            return true;
-        }
-        return super.onKeyDown(keyCode, event);
-    }
-}
diff --git a/tests/TileBenchmark/src/com/test/tilebenchmark/ProfiledWebView.java b/tests/TileBenchmark/src/com/test/tilebenchmark/ProfiledWebView.java
deleted file mode 100644
index d3b572c..0000000
--- a/tests/TileBenchmark/src/com/test/tilebenchmark/ProfiledWebView.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.test.tilebenchmark;
-
-import android.content.Context;
-import android.os.CountDownTimer;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.webkit.WebSettingsClassic;
-import android.webkit.WebView;
-import android.webkit.WebViewClassic;
-
-import java.util.ArrayList;
-
-import com.test.tilebenchmark.ProfileActivity.ProfileCallback;
-import com.test.tilebenchmark.RunData.TileData;
-
-public class ProfiledWebView extends WebView implements WebViewClassic.PageSwapDelegate {
-    private static final String LOGTAG = "ProfiledWebView";
-
-    private int mSpeed;
-
-    private boolean mIsTesting = false;
-    private boolean mIsScrolling = false;
-    private ProfileCallback mCallback;
-    private long mContentInvalMillis;
-    private static final int LOAD_STALL_MILLIS = 2000; // nr of millis after load,
-                                                       // before test is forced
-
-    // ignore anim end events until this many millis after load
-    private static final long ANIM_SAFETY_THRESHOLD = 200;
-    private long mLoadTime;
-    private long mAnimationTime;
-
-    public ProfiledWebView(Context context) {
-        super(context);
-    }
-
-    public ProfiledWebView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    public ProfiledWebView(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-    }
-
-    public ProfiledWebView(Context context, AttributeSet attrs, int defStyle,
-            boolean privateBrowsing) {
-        super(context, attrs, defStyle, privateBrowsing);
-    }
-
-    private class JavaScriptInterface {
-        Context mContext;
-
-        /** Instantiate the interface and set the context */
-        JavaScriptInterface(Context c) {
-            mContext = c;
-        }
-
-        public void animationComplete() {
-            mAnimationTime = System.currentTimeMillis();
-        }
-    }
-
-    public void init(Context c) {
-        WebSettingsClassic settings = getWebViewClassic().getSettings();
-        settings.setJavaScriptEnabled(true);
-        settings.setSupportZoom(true);
-        settings.setEnableSmoothTransition(true);
-        settings.setBuiltInZoomControls(true);
-        settings.setLoadWithOverviewMode(true);
-        settings.setProperty("use_minimal_memory", "false"); // prefetch tiles, as browser does
-        addJavascriptInterface(new JavaScriptInterface(c), "Android");
-        mAnimationTime = 0;
-        mLoadTime = 0;
-    }
-
-    public void setUseMinimalMemory(boolean minimal) {
-        WebSettingsClassic settings = getWebViewClassic().getSettings();
-        settings.setProperty("use_minimal_memory", minimal ? "true" : "false");
-    }
-
-    public void onPageFinished() {
-        mLoadTime = System.currentTimeMillis();
-    }
-
-    @Override
-    protected void onDraw(android.graphics.Canvas canvas) {
-        if (mIsTesting && mIsScrolling) {
-            if (canScrollVertically(1)) {
-                scrollBy(0, mSpeed);
-            } else {
-                stopScrollTest();
-                mIsScrolling = false;
-            }
-        }
-        super.onDraw(canvas);
-    }
-
-    /*
-     * Called once the page is loaded to start scrolling for evaluating tiles.
-     * If autoScrolling isn't set, stop must be called manually. Before
-     * scrolling, invalidate all content and redraw it, measuring time taken.
-     */
-    public void startScrollTest(ProfileCallback callback, boolean autoScrolling) {
-        mCallback = callback;
-        mIsTesting = false;
-        mIsScrolling = false;
-        WebSettingsClassic settings = getWebViewClassic().getSettings();
-        settings.setProperty("tree_updates", "0");
-
-
-        if (autoScrolling) {
-            // after a while, force it to start even if the pages haven't swapped
-            new CountDownTimer(LOAD_STALL_MILLIS, LOAD_STALL_MILLIS) {
-                @Override
-                public void onTick(long millisUntilFinished) {
-                }
-
-                @Override
-                public void onFinish() {
-                    // invalidate all content, and kick off redraw
-                    Log.d("ProfiledWebView",
-                            "kicking off test with callback registration, and tile discard...");
-                    getWebViewClassic().discardAllTextures();
-                    invalidate();
-                    mIsScrolling = true;
-                    mContentInvalMillis = System.currentTimeMillis();
-                }
-            }.start();
-        } else {
-            mIsTesting = true;
-            getWebViewClassic().tileProfilingStart();
-        }
-    }
-
-    /*
-     * Called after the manual contentInvalidateAll, after the tiles have all
-     * been redrawn.
-     * From PageSwapDelegate.
-     */
-    @Override
-    public void onPageSwapOccurred(boolean startAnim) {
-        if (!mIsTesting && mIsScrolling) {
-            // kick off testing
-            mContentInvalMillis = System.currentTimeMillis() - mContentInvalMillis;
-            Log.d("ProfiledWebView", "REDRAW TOOK " + mContentInvalMillis + "millis");
-            mIsTesting = true;
-            invalidate(); // ensure a redraw so that auto-scrolling can occur
-            getWebViewClassic().tileProfilingStart();
-        }
-    }
-
-    private double animFramerate() {
-        WebSettingsClassic settings = getWebViewClassic().getSettings();
-        String updatesString = settings.getProperty("tree_updates");
-        int updates = (updatesString == null) ? -1 : Integer.parseInt(updatesString);
-
-        long animationTime;
-        if (mAnimationTime == 0 || mAnimationTime - mLoadTime < ANIM_SAFETY_THRESHOLD) {
-            animationTime = System.currentTimeMillis() - mLoadTime;
-        } else {
-            animationTime = mAnimationTime - mLoadTime;
-        }
-
-        return updates * 1000.0 / animationTime;
-    }
-
-    public void setDoubleBuffering(boolean useDoubleBuffering) {
-        WebSettingsClassic settings = getWebViewClassic().getSettings();
-        settings.setProperty("use_double_buffering", useDoubleBuffering ? "true" : "false");
-    }
-
-    /*
-     * Called once the page has stopped scrolling
-     */
-    public void stopScrollTest() {
-        getWebViewClassic().tileProfilingStop();
-        mIsTesting = false;
-
-        if (mCallback == null) {
-            getWebViewClassic().tileProfilingClear();
-            return;
-        }
-
-        RunData data = new RunData(getWebViewClassic().tileProfilingNumFrames());
-        // record the time spent (before scrolling) rendering the page
-        data.singleStats.put(getResources().getString(R.string.render_millis),
-                (double)mContentInvalMillis);
-
-        // record framerate
-        double framerate = animFramerate();
-        Log.d(LOGTAG, "anim framerate was "+framerate);
-        data.singleStats.put(getResources().getString(R.string.animation_framerate),
-                framerate);
-
-        for (int frame = 0; frame < data.frames.length; frame++) {
-            data.frames[frame] = new TileData[
-                    getWebViewClassic().tileProfilingNumTilesInFrame(frame)];
-            for (int tile = 0; tile < data.frames[frame].length; tile++) {
-                int left = getWebViewClassic().tileProfilingGetInt(frame, tile, "left");
-                int top = getWebViewClassic().tileProfilingGetInt(frame, tile, "top");
-                int right = getWebViewClassic().tileProfilingGetInt(frame, tile, "right");
-                int bottom = getWebViewClassic().tileProfilingGetInt(frame, tile, "bottom");
-
-                boolean isReady = getWebViewClassic().tileProfilingGetInt(
-                        frame, tile, "isReady") == 1;
-                int level = getWebViewClassic().tileProfilingGetInt(frame, tile, "level");
-
-                float scale = getWebViewClassic().tileProfilingGetFloat(frame, tile, "scale");
-
-                data.frames[frame][tile] = data.new TileData(left, top, right, bottom,
-                        isReady, level, scale);
-            }
-        }
-        getWebViewClassic().tileProfilingClear();
-
-        mCallback.profileCallback(data);
-    }
-
-    @Override
-    public void loadUrl(String url) {
-        mAnimationTime = 0;
-        mLoadTime = 0;
-        if (!url.startsWith("http://") && !url.startsWith("file://")) {
-            url = "http://" + url;
-        }
-        super.loadUrl(url);
-    }
-
-    public void setAutoScrollSpeed(int speedInt) {
-        mSpeed = speedInt;
-    }
-
-    public WebViewClassic getWebViewClassic() {
-        return WebViewClassic.fromWebView(this);
-    }
-}
diff --git a/tests/TileBenchmark/src/com/test/tilebenchmark/RunData.java b/tests/TileBenchmark/src/com/test/tilebenchmark/RunData.java
deleted file mode 100644
index 5e48afd..0000000
--- a/tests/TileBenchmark/src/com/test/tilebenchmark/RunData.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES 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.test.tilebenchmark;
-
-import java.io.Serializable;
-import java.util.HashMap;
-
-public class RunData implements Serializable {
-    public TileData[][] frames;
-    public HashMap<String, Double> singleStats = new HashMap<String, Double>();
-
-    public RunData(int frames) {
-        this.frames = new TileData[frames][];
-    }
-
-    public class TileData implements Serializable {
-        public int left, top, right, bottom;
-        public boolean isReady;
-        public int level;
-        public float scale;
-
-        public TileData(int left, int top, int right, int bottom,
-                boolean isReady, int level, float scale) {
-            this.left = left;
-            this.right = right;
-            this.top = top;
-            this.bottom = bottom;
-            this.isReady = isReady;
-            this.level = level;
-            this.scale = scale;
-        }
-
-        public String toString() {
-            return "Tile (" + left + "," + top + ")->("
-                    + right + "," + bottom + ")"
-                    + (isReady ? "ready" : "NOTready") + " at scale " + scale;
-        }
-    }
-
-}
diff --git a/wifi/java/android/net/wifi/WifiConfigStore.java b/wifi/java/android/net/wifi/WifiConfigStore.java
index 3f6fb6e..4baab1f 100644
--- a/wifi/java/android/net/wifi/WifiConfigStore.java
+++ b/wifi/java/android/net/wifi/WifiConfigStore.java
@@ -31,6 +31,7 @@
 import android.net.wifi.NetworkUpdateResult;
 import static android.net.wifi.WifiConfiguration.INVALID_NETWORK_ID;
 import android.os.Environment;
+import android.os.FileObserver;
 import android.os.Message;
 import android.os.Handler;
 import android.os.HandlerThread;
@@ -42,12 +43,16 @@
 
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
+import java.io.BufferedReader;
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
 import java.io.EOFException;
+import java.io.File;
 import java.io.FileDescriptor;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
+import java.io.FileReader;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.net.InetAddress;
@@ -111,6 +116,8 @@
     private static final String TAG = "WifiConfigStore";
     private static final boolean DBG = true;
 
+    private static final String SUPPLICANT_CONFIG_FILE = "/data/misc/wifi/wpa_supplicant.conf";
+
     /* configured networks with network id as the key */
     private HashMap<Integer, WifiConfiguration> mConfiguredNetworks =
             new HashMap<Integer, WifiConfiguration>();
@@ -147,6 +154,7 @@
     private static final String EOS = "eos";
 
     private final LocalLog mLocalLog;
+    WpaConfigFileObserver mFileObserver;
 
     private WifiNative mWifiNative;
     private final KeyStore mKeyStore = KeyStore.getInstance();
@@ -156,11 +164,28 @@
         mWifiNative = wn;
 
         if (DBG) {
-            mLocalLog = new LocalLog(1024);                         // takes about 64 K
-            mWifiNative.setLocalLog(mLocalLog);
+            mLocalLog = mWifiNative.getLocalLog();
+            mFileObserver = new WpaConfigFileObserver();
+            mFileObserver.startWatching();
         }
     }
 
+    class WpaConfigFileObserver extends FileObserver {
+
+        public WpaConfigFileObserver() {
+            super(SUPPLICANT_CONFIG_FILE, CLOSE_WRITE);
+        }
+
+        @Override
+        public void onEvent(int event, String path) {
+            if (event == CLOSE_WRITE) {
+                File file = new File(SUPPLICANT_CONFIG_FILE);
+                localLog("wpa_supplicant.conf changed; new size = " + file.length());
+            }
+        }
+    }
+
+
     /**
      * Fetch the list of configured networks
      * and enable all stored networks in supplicant.
@@ -332,7 +357,7 @@
         if (result.getNetworkId() != WifiConfiguration.INVALID_NETWORK_ID) {
             sendConfiguredNetworksChangedBroadcast(mConfiguredNetworks.get(result.getNetworkId()),
                     result.isNewNetwork ? WifiManager.CHANGE_REASON_ADDED :
-                        WifiManager.CHANGE_REASON_CONFIG_CHANGE);
+                            WifiManager.CHANGE_REASON_CONFIG_CHANGE);
         }
         return result.getNetworkId();
     }
@@ -636,6 +661,7 @@
             try {
                 config.networkId = Integer.parseInt(result[0]);
             } catch(NumberFormatException e) {
+                loge("Failed to read network-id '" + result[0] + "'");
                 continue;
             }
             if (result.length > 3) {
@@ -663,6 +689,31 @@
         sendConfiguredNetworksChangedBroadcast();
 
         localLog("loadConfiguredNetworks loaded " + mNetworkIds.size() + " networks");
+
+        if (mNetworkIds.size() == 0) {
+            // no networks? Lets log if the wpa_supplicant.conf file contents
+            BufferedReader reader = null;
+            try {
+                reader = new BufferedReader(new FileReader(SUPPLICANT_CONFIG_FILE));
+                localLog("--- Begin wpa_supplicant.conf Contents ---");
+                for (String line = reader.readLine(); line != null; line = reader.readLine()) {
+                    localLog(line);
+                }
+                localLog("--- End wpa_supplicant.conf Contents ---");
+            } catch (FileNotFoundException e) {
+                localLog("Could not open " + SUPPLICANT_CONFIG_FILE + ", " + e);
+            } catch (IOException e) {
+                localLog("Could not read " + SUPPLICANT_CONFIG_FILE + ", " + e);
+            } finally {
+                try {
+                    if (reader != null) {
+                        reader.close();
+                    }
+                } catch (IOException e) {
+                    // Just ignore the fact that we couldn't close
+                }
+            }
+        }
     }
 
     /* Mark all networks except specified netId as disabled */
diff --git a/wifi/java/android/net/wifi/WifiNative.java b/wifi/java/android/net/wifi/WifiNative.java
index d3342dd..f86a51c9 100644
--- a/wifi/java/android/net/wifi/WifiNative.java
+++ b/wifi/java/android/net/wifi/WifiNative.java
@@ -48,6 +48,10 @@
     static final int SCAN_WITHOUT_CONNECTION_SETUP          = 1;
     static final int SCAN_WITH_CONNECTION_SETUP             = 2;
 
+    // Hold this lock before calling supplicant - it is required to
+    // mutually exclude access from Wifi and P2p state machines
+    static final Object mLock = new Object();
+
     public final String mInterfaceName;
     public final String mInterfacePrefix;
 
@@ -92,11 +96,17 @@
         }
     }
 
+    private static final LocalLog mLocalLog = new LocalLog(1024);
 
-    private LocalLog mLocalLog;
+    // hold mLock before accessing mCmdIdLock
+    private int mCmdId;
 
-    public void setLocalLog(LocalLog l) {
-        mLocalLog = l;
+    public LocalLog getLocalLog() {
+        return mLocalLog;
+    }
+
+    private int getNewCmdIdLocked() {
+        return mCmdId++;
     }
 
     private void localLog(String s) {
@@ -105,30 +115,59 @@
     }
 
     public boolean connectToSupplicant() {
+        // No synchronization necessary .. it is implemented in WifiMonitor
+        localLog(mInterfacePrefix + "connectToSupplicant");
         return connectToSupplicantNative();
     }
 
     public void closeSupplicantConnection() {
+        localLog(mInterfacePrefix + "closeSupplicantConnection");
         closeSupplicantConnectionNative();
     }
 
     public String waitForEvent() {
+        // No synchronization necessary .. it is implemented in WifiMonitor
         return waitForEventNative();
     }
 
     private boolean doBooleanCommand(String command) {
         if (DBG) Log.d(mTAG, "doBoolean: " + command);
-        return doBooleanCommandNative(mInterfacePrefix + command);
+        synchronized (mLock) {
+            int cmdId = getNewCmdIdLocked();
+            localLog(cmdId + "->" + mInterfacePrefix + command);
+            boolean result = doBooleanCommandNative(mInterfacePrefix + command);
+            localLog(cmdId + "<-" + result);
+            return result;
+        }
     }
 
     private int doIntCommand(String command) {
         if (DBG) Log.d(mTAG, "doInt: " + command);
-        return doIntCommandNative(mInterfacePrefix + command);
+        synchronized (mLock) {
+            int cmdId = getNewCmdIdLocked();
+            localLog(cmdId + "->" + mInterfacePrefix + command);
+            int result = doIntCommandNative(mInterfacePrefix + command);
+            localLog(cmdId + "<-" + result);
+            return result;
+        }
     }
 
     private String doStringCommand(String command) {
         if (DBG) Log.d(mTAG, "doString: " + command);
-        return doStringCommandNative(mInterfacePrefix + command);
+        synchronized (mLock) {
+            int cmdId = getNewCmdIdLocked();
+            localLog(cmdId + "->" + mInterfacePrefix + command);
+            String result = doStringCommandNative(mInterfacePrefix + command);
+            localLog(cmdId + "<-" + result);
+            return result;
+        }
+    }
+
+    private String doStringCommandWithoutLogging(String command) {
+        if (DBG) Log.d(mTAG, "doString: " + command);
+        synchronized (mLock) {
+            return doStringCommandNative(mInterfacePrefix + command);
+        }
     }
 
     public boolean ping() {
@@ -157,48 +196,42 @@
     }
 
     public String listNetworks() {
-        localLog("LIST_NETWORKS");
         return doStringCommand("LIST_NETWORKS");
     }
 
     public int addNetwork() {
-        localLog("ADD_NETWORK");
         return doIntCommand("ADD_NETWORK");
     }
 
     public boolean setNetworkVariable(int netId, String name, String value) {
         if (TextUtils.isEmpty(name) || TextUtils.isEmpty(value)) return false;
-        localLog("SET_NETWORK " + netId + " " + name + "=" + value);
         return doBooleanCommand("SET_NETWORK " + netId + " " + name + " " + value);
     }
 
     public String getNetworkVariable(int netId, String name) {
         if (TextUtils.isEmpty(name)) return null;
-        return doStringCommand("GET_NETWORK " + netId + " " + name);
+
+        // GET_NETWORK will likely flood the logs ...
+        return doStringCommandWithoutLogging("GET_NETWORK " + netId + " " + name);
     }
 
     public boolean removeNetwork(int netId) {
-        localLog("REMOVE_NETWORK " + netId);
         return doBooleanCommand("REMOVE_NETWORK " + netId);
     }
 
     public boolean enableNetwork(int netId, boolean disableOthers) {
         if (disableOthers) {
-            localLog("SELECT_NETWORK " + netId);
             return doBooleanCommand("SELECT_NETWORK " + netId);
         } else {
-            localLog("ENABLE_NETWORK " + netId);
             return doBooleanCommand("ENABLE_NETWORK " + netId);
         }
     }
 
     public boolean disableNetwork(int netId) {
-        localLog("DISABLE_NETWORK " + netId);
         return doBooleanCommand("DISABLE_NETWORK " + netId);
     }
 
     public boolean reconnect() {
-        localLog("RECONNECT");
         return doBooleanCommand("RECONNECT");
     }
 
@@ -242,7 +275,7 @@
      * MASK=<N> see wpa_supplicant/src/common/wpa_ctrl.h for details
      */
     public String scanResults(int sid) {
-        return doStringCommand("BSS RANGE=" + sid + "- MASK=0x21987");
+        return doStringCommandWithoutLogging("BSS RANGE=" + sid + "- MASK=0x21987");
     }
 
     /**
@@ -268,7 +301,11 @@
         }
         if (settings.channelSet != null && !settings.channelSet.isEmpty()) {
             cmd += " CHANNEL=<";
-            for (String channel : settings.channelSet) cmd += " " + channel;
+            int i = 0;
+            for (String channel : settings.channelSet) {
+                cmd += (i > 0 ? "," : "") + channel;
+                ++i;
+            }
             cmd += ">";
         }
         if (settings.maxApForDistance != BatchedScanSettings.UNSPECIFIED) {
@@ -397,7 +434,6 @@
     }
 
     public boolean saveConfig() {
-        localLog("SAVE_CONFIG");
         return doBooleanCommand("SAVE_CONFIG");
     }
 
@@ -452,7 +488,7 @@
      * FREQUENCY=0
      */
     public String signalPoll() {
-        return doStringCommand("SIGNAL_POLL");
+        return doStringCommandWithoutLogging("SIGNAL_POLL");
     }
 
     /** Example outout:
@@ -476,10 +512,12 @@
     }
 
     public boolean startWpsPbc(String iface, String bssid) {
-        if (TextUtils.isEmpty(bssid)) {
-            return doBooleanCommandNative("IFNAME=" + iface + " WPS_PBC");
-        } else {
-            return doBooleanCommandNative("IFNAME=" + iface + " WPS_PBC " + bssid);
+        synchronized (mLock) {
+            if (TextUtils.isEmpty(bssid)) {
+                return doBooleanCommandNative("IFNAME=" + iface + " WPS_PBC");
+            } else {
+                return doBooleanCommandNative("IFNAME=" + iface + " WPS_PBC " + bssid);
+            }
         }
     }
 
@@ -490,7 +528,9 @@
 
     public boolean startWpsPinKeypad(String iface, String pin) {
         if (TextUtils.isEmpty(pin)) return false;
-        return doBooleanCommandNative("IFNAME=" + iface + " WPS_PIN any " + pin);
+        synchronized (mLock) {
+            return doBooleanCommandNative("IFNAME=" + iface + " WPS_PIN any " + pin);
+        }
     }
 
 
@@ -503,10 +543,12 @@
     }
 
     public String startWpsPinDisplay(String iface, String bssid) {
-        if (TextUtils.isEmpty(bssid)) {
-            return doStringCommandNative("IFNAME=" + iface + " WPS_PIN any");
-        } else {
-            return doStringCommandNative("IFNAME=" + iface + " WPS_PIN " + bssid);
+        synchronized (mLock) {
+            if (TextUtils.isEmpty(bssid)) {
+                return doStringCommandNative("IFNAME=" + iface + " WPS_PIN any");
+            } else {
+                return doStringCommandNative("IFNAME=" + iface + " WPS_PIN " + bssid);
+            }
         }
     }
 
@@ -558,7 +600,9 @@
     }
 
     public boolean setP2pGroupIdle(String iface, int time) {
-        return doBooleanCommandNative("IFNAME=" + iface + " SET p2p_group_idle " + time);
+        synchronized (mLock) {
+            return doBooleanCommandNative("IFNAME=" + iface + " SET p2p_group_idle " + time);
+        }
     }
 
     public void setPowerSave(boolean enabled) {
@@ -570,10 +614,12 @@
     }
 
     public boolean setP2pPowerSave(String iface, boolean enabled) {
-        if (enabled) {
-            return doBooleanCommandNative("IFNAME=" + iface + " P2P_SET ps 1");
-        } else {
-            return doBooleanCommandNative("IFNAME=" + iface + " P2P_SET ps 0");
+        synchronized (mLock) {
+            if (enabled) {
+                return doBooleanCommandNative("IFNAME=" + iface + " P2P_SET ps 1");
+            } else {
+                return doBooleanCommandNative("IFNAME=" + iface + " P2P_SET ps 0");
+            }
         }
     }
 
@@ -742,7 +788,9 @@
 
     public boolean p2pGroupRemove(String iface) {
         if (TextUtils.isEmpty(iface)) return false;
-        return doBooleanCommandNative("IFNAME=" + iface + " P2P_GROUP_REMOVE " + iface);
+        synchronized (mLock) {
+            return doBooleanCommandNative("IFNAME=" + iface + " P2P_GROUP_REMOVE " + iface);
+        }
     }
 
     public boolean p2pReject(String deviceAddress) {
diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java
index 85fbdd8..d4e98c5 100644
--- a/wifi/java/android/net/wifi/WifiStateMachine.java
+++ b/wifi/java/android/net/wifi/WifiStateMachine.java
@@ -723,7 +723,7 @@
 
         setInitialState(mInitialState);
 
-        setLogRecSize(300);
+        setLogRecSize(2000);
         setLogOnlyTransitions(false);
         if (DBG) setDbg(true);