Update Dialer to v10 RC32

This release was created following the instructions at:
go/dialer-aosp-release

Subsequent dialer releases will follow as O bugs are
fixed, until we reach our final RC.

Version: 10
Candidate: RC32
Branch: dialer-android_release_branch/153304843.1
dialer-android_20170416.00/dialer-android_20170416.00_RC32

This release contains the following bug fixes since RC17:
Bug: 33176679 33272455 3646510 36773894 37297649 37413780
37513689 37640315 37680595 37698062 37873639 37901752
37919295 37953423 38062852 38069600 38137349 38173549
38180252 38191514

Test: make, on device
Change-Id: I4e4bb630082758e418ff24892b7db3142c6eb09a
diff --git a/Android.mk b/Android.mk
index b00519f..f46e4d8 100644
--- a/Android.mk
+++ b/Android.mk
@@ -47,6 +47,7 @@
 	assets/product/res \
 	assets/quantum/res \
 	$(BASE_DIR)/contacts/common/res \
+	$(BASE_DIR)/dialer/about/res \
 	$(BASE_DIR)/dialer/app/res \
 	$(BASE_DIR)/dialer/app/voicemail/error/res \
 	$(BASE_DIR)/dialer/blocking/res \
@@ -83,6 +84,7 @@
 	$(BASE_DIR)/incallui/incall/impl/res \
 	$(BASE_DIR)/incallui/res \
 	$(BASE_DIR)/incallui/sessiondata/res \
+	$(BASE_DIR)/incallui/telecomeventui/res \
 	$(BASE_DIR)/incallui/video/impl/res \
 	$(BASE_DIR)/incallui/video/protocol/res \
 	$(BASE_DIR)/incallui/wifi/res \
@@ -93,6 +95,7 @@
 # find . -type f -name "AndroidManifest.xml" | uniq | sort
 DIALER_MANIFEST_FILES += \
 	$(BASE_DIR)/contacts/common/AndroidManifest.xml \
+	$(BASE_DIR)/dialer/about/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/app/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/app/manifests/activities/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/app/voicemail/error/AndroidManifest.xml \
@@ -132,6 +135,7 @@
 	$(BASE_DIR)/incallui/hold/AndroidManifest.xml \
 	$(BASE_DIR)/incallui/incall/impl/AndroidManifest.xml \
 	$(BASE_DIR)/incallui/sessiondata/AndroidManifest.xml \
+	$(BASE_DIR)/incallui/telecomeventui/AndroidManifest.xml \
 	$(BASE_DIR)/incallui/video/impl/AndroidManifest.xml \
 	$(BASE_DIR)/incallui/video/protocol/AndroidManifest.xml \
 	$(BASE_DIR)/incallui/wifi/AndroidManifest.xml \
@@ -158,6 +162,7 @@
 LOCAL_AAPT_FLAGS := \
 	--auto-add-overlay \
 	--extra-packages com.android.contacts.common \
+	--extra-packages com.android.dialer.about \
 	--extra-packages com.android.dialer.app \
 	--extra-packages com.android.dialer.app.voicemail.error \
 	--extra-packages com.android.dialer.blocking \
@@ -179,6 +184,7 @@
 	--extra-packages com.android.dialer.postcall \
 	--extra-packages com.android.dialer.shortcuts \
 	--extra-packages com.android.dialer.speeddial \
+	--extra-packages com.android.dialer.theme \
 	--extra-packages com.android.dialer.util \
 	--extra-packages com.android.dialer.voicemailstatus \
 	--extra-packages com.android.dialer.widget \
@@ -198,6 +204,7 @@
 	--extra-packages com.android.incallui.incall.impl \
 	--extra-packages com.android.incallui.maps.impl \
 	--extra-packages com.android.incallui.sessiondata \
+	--extra-packages com.android.incallui.telecomeventui \
 	--extra-packages com.android.incallui.video \
 	--extra-packages com.android.incallui.video.impl \
 	--extra-packages com.android.incallui.wifi \
diff --git a/java/com/android/contacts/common/ContactPhotoManager.java b/java/com/android/contacts/common/ContactPhotoManager.java
index 652e936..169348b 100644
--- a/java/com/android/contacts/common/ContactPhotoManager.java
+++ b/java/com/android/contacts/common/ContactPhotoManager.java
@@ -191,7 +191,7 @@
       Context applicationContext = context.getApplicationContext();
       sInstance = createContactPhotoManager(applicationContext);
       applicationContext.registerComponentCallbacks(sInstance);
-      if (PermissionsUtil.hasContactsPermissions(context)) {
+      if (PermissionsUtil.hasContactsReadPermissions(context)) {
         sInstance.preloadPhotosInBackground();
       }
     }
diff --git a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
index 8400225..7e4803c 100644
--- a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
+++ b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
@@ -41,6 +41,9 @@
   public static final String EVENT_CALL_REMOTELY_UNHELD =
       "android.telecom.event.CALL_REMOTELY_UNHELD";
 
+  public static final String EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC =
+      "android.telephony.event.EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC";
+
   public static final String TELEPHONY_MANAGER_CLASS = "android.telephony.TelephonyManager";
 
   private static final String SECRET_CODE_ACTION = "android.provider.Telephony.SECRET_CODE";
diff --git a/java/com/android/contacts/common/dialog/ClearFrequentsDialog.java b/java/com/android/contacts/common/dialog/ClearFrequentsDialog.java
index e96496c..751490a 100644
--- a/java/com/android/contacts/common/dialog/ClearFrequentsDialog.java
+++ b/java/com/android/contacts/common/dialog/ClearFrequentsDialog.java
@@ -48,7 +48,7 @@
         new OnClickListener() {
           @Override
           public void onClick(DialogInterface dialog, int which) {
-            if (!PermissionsUtil.hasContactsPermissions(context)) {
+            if (!PermissionsUtil.hasContactsReadPermissions(context)) {
               return;
             }
 
diff --git a/java/com/android/contacts/common/list/DirectoryListLoader.java b/java/com/android/contacts/common/list/DirectoryListLoader.java
index 48b098c..be62cc7 100644
--- a/java/com/android/contacts/common/list/DirectoryListLoader.java
+++ b/java/com/android/contacts/common/list/DirectoryListLoader.java
@@ -25,9 +25,10 @@
 import android.os.Handler;
 import android.provider.ContactsContract.Directory;
 import android.text.TextUtils;
-import android.util.Log;
 import com.android.contacts.common.R;
 import com.android.contacts.common.compat.DirectoryCompat;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.util.PermissionsUtil;
 
 /** A specialized loader for the list of directories, see {@link Directory}. */
 public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
@@ -38,7 +39,6 @@
   public static final int SEARCH_MODE_DATA_SHORTCUT = 3;
   // This is a virtual column created for a MatrixCursor.
   public static final String DIRECTORY_TYPE = "directoryType";
-  private static final String TAG = "ContactEntryListAdapter";
   private static final String[] RESULT_PROJECTION = {
     Directory._ID, DIRECTORY_TYPE, Directory.DISPLAY_NAME, Directory.PHOTO_SUPPORT,
   };
@@ -71,7 +71,13 @@
 
   @Override
   protected void onStartLoading() {
-    getContext().getContentResolver().registerContentObserver(DirectoryQuery.URI, false, mObserver);
+    if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
+      getContext()
+          .getContentResolver()
+          .registerContentObserver(DirectoryQuery.URI, false, mObserver);
+    } else {
+      LogUtil.w("DirectoryListLoader.onStartLoading", "contacts permission not available.");
+    }
     forceLoad();
   }
 
@@ -141,7 +147,9 @@
           try {
             directoryType = pm.getResourcesForApplication(packageName).getString(typeResourceId);
           } catch (Exception e) {
-            Log.e(TAG, "Cannot obtain directory type from package: " + packageName);
+            LogUtil.e(
+                "ContactEntryListAdapter.loadInBackground",
+                "cannot obtain directory type from package: " + packageName);
           }
         }
         String displayName = cursor.getString(DirectoryQuery.DISPLAY_NAME);
@@ -149,7 +157,8 @@
         result.addRow(new Object[] {directoryId, directoryType, displayName, photoSupport});
       }
     } catch (RuntimeException e) {
-      Log.w(TAG, "Runtime Exception when querying directory");
+      LogUtil.w(
+          "ContactEntryListAdapter.loadInBackground", "runtime exception when querying directory");
     } finally {
       if (cursor != null) {
         cursor.close();
diff --git a/java/com/android/contacts/common/model/ContactLoader.java b/java/com/android/contacts/common/model/ContactLoader.java
index 8e9ef94..55464b1 100644
--- a/java/com/android/contacts/common/model/ContactLoader.java
+++ b/java/com/android/contacts/common/model/ContactLoader.java
@@ -47,6 +47,7 @@
 import com.android.contacts.common.util.UriUtils;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.location.GeoUtil;
+import com.android.dialer.util.PermissionsUtil;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
@@ -688,11 +689,15 @@
       mLookupUri = result.getLookupUri();
 
       if (!result.isDirectoryEntry()) {
-        LogUtil.i(TAG, "Registering content observer for " + mLookupUri);
         if (mObserver == null) {
           mObserver = new ForceLoadContentObserver();
         }
-        getContext().getContentResolver().registerContentObserver(mLookupUri, true, mObserver);
+
+        if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
+          getContext().getContentResolver().registerContentObserver(mLookupUri, true, mObserver);
+        } else {
+          LogUtil.w("ContactLoader.deliverResult", "contacts permission not available");
+        }
       }
 
       if (mPostViewNotification) {
diff --git a/java/com/android/dialer/about/AboutPhoneFragment.java b/java/com/android/dialer/about/AboutPhoneFragment.java
new file mode 100644
index 0000000..ecd7c0f
--- /dev/null
+++ b/java/com/android/dialer/about/AboutPhoneFragment.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.about;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.PreferenceFragment;
+import android.text.TextUtils;
+
+/** The fragment for information about the Phone App */
+public class AboutPhoneFragment extends PreferenceFragment {
+
+  @Override
+  public void onCreate(Bundle savedInstanceState) {
+    super.onCreate(savedInstanceState);
+    addPreferencesFromResource(R.xml.about_phone_fragment);
+
+    // We set the intent here, instead of in XML, to avoid specifying a target package, which
+    // differs between AOSP and the GoogleDialer.
+    Intent openSourceActivity =
+        new Intent(getActivity().getApplicationContext(), LicenseMenuActivity.class);
+    findPreference(getString(R.string.open_source_licenses_key)).setIntent(openSourceActivity);
+    populateBuildVersion();
+  }
+
+  private void populateBuildVersion() {
+    Preference buildVersion = findPreference(getResources().getString(R.string.build_version_key));
+    String versionName = getVersionName();
+    if (!TextUtils.isEmpty(versionName)) {
+      buildVersion.setSummary(versionName);
+    }
+  }
+
+  private String getVersionName() {
+    Context context = getContext();
+    try {
+      return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
+    } catch (NameNotFoundException e) {
+      return "";
+    }
+  }
+
+  @Override
+  public Context getContext() {
+    return getActivity();
+  }
+}
diff --git a/java/com/android/dialer/about/AndroidManifest.xml b/java/com/android/dialer/about/AndroidManifest.xml
new file mode 100644
index 0000000..e9489ce
--- /dev/null
+++ b/java/com/android/dialer/about/AndroidManifest.xml
@@ -0,0 +1,17 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+  package="com.android.dialer.about">
+  <application>
+    <activity
+        android:name="com.android.dialer.about.LicenseMenuActivity"
+        android:label="@string/licenseActivityLabel"
+        android:exported="false"
+        android:theme="@style/Theme.AppCompat.Light">
+    </activity>
+    <activity
+        android:name="com.android.dialer.about.LicenseActivity"
+        android:label="@string/licenseActivityLabel"
+        android:exported="false"
+        android:theme="@style/Theme.AppCompat.Light">
+    </activity>
+  </application>
+</manifest>
diff --git a/java/com/android/dialer/about/License.java b/java/com/android/dialer/about/License.java
new file mode 100644
index 0000000..d0d73b8
--- /dev/null
+++ b/java/com/android/dialer/about/License.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.about;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * Container class to store the name of a library and the filename of its associated license file.
+ */
+public final class License implements Comparable<License>, Parcelable {
+  // Name of the third-party library.
+  private final String libraryName;
+  // Byte offset in the file to the start of the license text.
+  private final long licenseOffset;
+  // Byte length of the license text.
+  private final int licenseLength;
+
+  /**
+   * Create an object representing a stored license. The text for all licenses is stored in a single
+   * file, so the offset and length describe this license's position within the file.
+   */
+  static License create(String libraryName, long licenseOffset, int licenseLength) {
+    return new License(libraryName, licenseOffset, licenseLength);
+  }
+
+  public static final Parcelable.Creator<License> CREATOR =
+      new Parcelable.Creator<License>() {
+        @Override
+        public License createFromParcel(Parcel in) {
+          return new License(in);
+        }
+
+        @Override
+        public License[] newArray(int size) {
+          return new License[size];
+        }
+      };
+
+  @Override
+  public int describeContents() {
+    return 0;
+  }
+
+  @Override
+  public void writeToParcel(Parcel dest, int flags) {
+    dest.writeString(libraryName);
+    dest.writeLong(licenseOffset);
+    dest.writeInt(licenseLength);
+  }
+
+  @Override
+  public int compareTo(License o) {
+    return libraryName.compareToIgnoreCase(o.getLibraryName());
+  }
+
+  @Override
+  public String toString() {
+    return getLibraryName();
+  }
+
+  private License(String libraryName, long licenseOffset, int licenseLength) {
+    this.libraryName = libraryName;
+    this.licenseOffset = licenseOffset;
+    this.licenseLength = licenseLength;
+  }
+
+  private License(Parcel in) {
+    libraryName = in.readString();
+    licenseOffset = in.readLong();
+    licenseLength = in.readInt();
+  }
+
+  String getLibraryName() {
+    return libraryName;
+  }
+
+  long getLicenseOffset() {
+    return licenseOffset;
+  }
+
+  int getLicenseLength() {
+    return licenseLength;
+  }
+}
diff --git a/java/com/android/dialer/about/LicenseActivity.java b/java/com/android/dialer/about/LicenseActivity.java
new file mode 100644
index 0000000..2482223
--- /dev/null
+++ b/java/com/android/dialer/about/LicenseActivity.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.about;
+
+import android.os.Bundle;
+import android.support.v7.app.ActionBarActivity;
+import android.view.MenuItem;
+import android.widget.ScrollView;
+import android.widget.TextView;
+
+/** Simple Activity that renders locally stored open source legal info in a text view. */
+public final class LicenseActivity extends ActionBarActivity {
+  private static final String TAG = "LicenseActivity";
+  private static final String STATE_SCROLL_POS = "scroll_pos";
+
+  @Override
+  public void onCreate(Bundle bundle) {
+    super.onCreate(bundle);
+    setContentView(R.layout.license_scrollview);
+
+    License license = getIntent().getParcelableExtra(LicenseMenuActivity.ARGS_LICENSE);
+    getSupportActionBar().setTitle(license.getLibraryName());
+
+    // Show 'up' button with no logo.
+    getSupportActionBar().setDisplayShowHomeEnabled(true);
+    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+    getSupportActionBar().setLogo(null);
+
+    TextView textView = (TextView) findViewById(R.id.license_activity_textview);
+    String licenseText = Licenses.getLicenseText(this, license);
+    if (licenseText == null) {
+      finish();
+      return;
+    }
+    textView.setText(licenseText);
+  }
+
+  @Override
+  public void onSaveInstanceState(Bundle outState) {
+    super.onSaveInstanceState(outState);
+    ScrollView scrollView = (ScrollView) findViewById(R.id.license_activity_scrollview);
+    TextView textView = (TextView) findViewById(R.id.license_activity_textview);
+    int firstVisibleLine = textView.getLayout().getLineForVertical(scrollView.getScrollY());
+    int firstVisibleChar = textView.getLayout().getLineStart(firstVisibleLine);
+    outState.putInt(STATE_SCROLL_POS, firstVisibleChar);
+  }
+
+  @Override
+  public void onRestoreInstanceState(Bundle savedInstanceState) {
+    super.onRestoreInstanceState(savedInstanceState);
+    final ScrollView scrollView = (ScrollView) findViewById(R.id.license_activity_scrollview);
+    final int firstVisibleChar = savedInstanceState.getInt(STATE_SCROLL_POS);
+    scrollView.post(
+        new Runnable() {
+          @Override
+          public void run() {
+            TextView textView = (TextView) findViewById(R.id.license_activity_textview);
+            int firstVisibleLine = textView.getLayout().getLineForOffset(firstVisibleChar);
+            int offset = textView.getLayout().getLineTop(firstVisibleLine);
+            scrollView.scrollTo(0, offset);
+          }
+        });
+  }
+
+  @Override
+  public boolean onOptionsItemSelected(final MenuItem item) {
+    if (item.getItemId() == android.R.id.home) {
+      finish();
+      return true;
+    }
+    return super.onOptionsItemSelected(item);
+  }
+}
diff --git a/java/com/android/dialer/about/LicenseLoader.java b/java/com/android/dialer/about/LicenseLoader.java
new file mode 100644
index 0000000..50d6834
--- /dev/null
+++ b/java/com/android/dialer/about/LicenseLoader.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.about;
+
+import android.content.Context;
+import android.support.v4.content.AsyncTaskLoader;
+import java.util.List;
+
+/** {@link AsyncTaskLoader} to load the list of licenses for the license menu activity. */
+final class LicenseLoader extends AsyncTaskLoader<List<License>> {
+
+  private List<License> licenses;
+
+  LicenseLoader(Context context) {
+    // This must only pass the application context to avoid leaking a pointer to the Activity.
+    super(context.getApplicationContext());
+  }
+
+  @Override
+  public List<License> loadInBackground() {
+    return Licenses.getLicenses(getContext());
+  }
+
+  @Override
+  public void deliverResult(List<License> licenses) {
+    this.licenses = licenses;
+    super.deliverResult(licenses);
+  }
+
+  @Override
+  protected void onStartLoading() {
+    if (licenses != null) {
+      deliverResult(licenses);
+    } else {
+      forceLoad();
+    }
+  }
+
+  @Override
+  protected void onStopLoading() {
+    cancelLoad();
+  }
+}
diff --git a/java/com/android/dialer/about/LicenseMenuActivity.java b/java/com/android/dialer/about/LicenseMenuActivity.java
new file mode 100644
index 0000000..7304798
--- /dev/null
+++ b/java/com/android/dialer/about/LicenseMenuActivity.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.about;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.LoaderManager.LoaderCallbacks;
+import android.support.v4.content.Loader;
+import android.support.v7.app.ActionBarActivity;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+import java.util.ArrayList;
+import java.util.List;
+
+/** An Activity listing third party libraries with notice licenses. */
+public final class LicenseMenuActivity extends ActionBarActivity
+    implements LoaderCallbacks<List<License>> {
+
+  static final String ARGS_LICENSE = "license";
+
+  private static final int LOADER_ID = 54321;
+
+  private ArrayAdapter<License> listAdapter;
+
+  @Override
+  protected void onCreate(Bundle savedInstanceState) {
+    super.onCreate(savedInstanceState);
+    setContentView(R.layout.license_menu_activity);
+
+    if (getSupportActionBar() != null) {
+      getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+    }
+
+    listAdapter = new ArrayAdapter<>(this, R.layout.license, R.id.license, new ArrayList<>());
+    getSupportLoaderManager().initLoader(LOADER_ID, null, this);
+    ListView listView = (ListView) findViewById(R.id.license_list);
+    listView.setAdapter(listAdapter);
+    listView.setOnItemClickListener(
+        new OnItemClickListener() {
+          @Override
+          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+            License license = (License) parent.getItemAtPosition(position);
+            Intent licenseIntent = new Intent(LicenseMenuActivity.this, LicenseActivity.class);
+            licenseIntent.putExtra(ARGS_LICENSE, license);
+            startActivity(licenseIntent);
+          }
+        });
+  }
+
+  @Override
+  public boolean onOptionsItemSelected(MenuItem item) {
+    if (item.getItemId() == android.R.id.home) {
+      // Go back one place in the history stack, if the app icon is clicked.
+      finish();
+      return true;
+    }
+    return super.onOptionsItemSelected(item);
+  }
+
+  @Override
+  public void onDestroy() {
+    super.onDestroy();
+    getSupportLoaderManager().destroyLoader(LOADER_ID);
+  }
+
+  @Override
+  public Loader<List<License>> onCreateLoader(int id, Bundle args) {
+    return new LicenseLoader(this);
+  }
+
+  @Override
+  public void onLoadFinished(Loader<List<License>> loader, List<License> licenses) {
+    listAdapter.clear();
+    listAdapter.addAll(licenses);
+    listAdapter.notifyDataSetChanged();
+  }
+
+  @Override
+  public void onLoaderReset(Loader<List<License>> loader) {
+    listAdapter.clear();
+    listAdapter.notifyDataSetChanged();
+  }
+}
diff --git a/java/com/android/dialer/about/Licenses.java b/java/com/android/dialer/about/Licenses.java
new file mode 100644
index 0000000..d90c282
--- /dev/null
+++ b/java/com/android/dialer/about/Licenses.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.about;
+
+import android.content.Context;
+import android.content.res.Resources;
+import com.android.dialer.common.Assert;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.Collections;
+
+/** A helper for extracting licenses. */
+public final class Licenses {
+  private static final String TAG = "Licenses";
+  private static final String LICENSE_FILENAME = "third_party_licenses";
+  private static final String LICENSE_METADATA_FILENAME = "third_party_license_metadata";
+
+  /** Return the licenses bundled into this app. */
+  public static ArrayList<License> getLicenses(Context context) {
+    return getLicenseListFromMetadata(
+        getTextFromResource(context.getApplicationContext(), LICENSE_METADATA_FILENAME, 0, -1));
+  }
+
+  /**
+   * Returns a list of {@link License}s parsed from a license metadata file.
+   *
+   * @param metadata a {@code String} containing the contents of a license metadata file.
+   */
+  private static ArrayList<License> getLicenseListFromMetadata(String metadata) {
+    String[] entries = metadata.split("\n");
+    ArrayList<License> licenses = new ArrayList<License>(entries.length);
+    for (String entry : entries) {
+      int delimiter = entry.indexOf(' ');
+      String[] licenseLocation = entry.substring(0, delimiter).split(":");
+      Assert.checkState(
+          delimiter > 0 && licenseLocation.length == 2,
+          "Invalid license meta-data line:\n" + entry);
+      long licenseOffset = Long.parseLong(licenseLocation[0]);
+      int licenseLength = Integer.parseInt(licenseLocation[1]);
+      licenses.add(License.create(entry.substring(delimiter + 1), licenseOffset, licenseLength));
+    }
+    Collections.sort(licenses);
+    return licenses;
+  }
+
+  /** Return the text of a bundled license file. */
+  public static String getLicenseText(Context context, License license) {
+    long offset = license.getLicenseOffset();
+    int length = license.getLicenseLength();
+    return getTextFromResource(context, LICENSE_FILENAME, offset, length);
+  }
+
+  private static String getTextFromResource(
+      Context context, String filename, long offset, int length) {
+    Resources resources = context.getApplicationContext().getResources();
+    // When aapt is called with --rename-manifest-package, the package name is changed for the
+    // application, but not for the resources. This is to find the package name of a known
+    // resource to know what package to lookup the license files in.
+    String packageName = resources.getResourcePackageName(R.id.dummy_placeholder);
+    InputStream stream =
+        resources.openRawResource(resources.getIdentifier(filename, "raw", packageName));
+    return getTextFromInputStream(stream, offset, length);
+  }
+
+  private static String getTextFromInputStream(InputStream stream, long offset, int length) {
+    byte[] buffer = new byte[1024];
+    ByteArrayOutputStream textArray = new ByteArrayOutputStream();
+
+    try {
+      stream.skip(offset);
+      int bytesRemaining = length > 0 ? length : Integer.MAX_VALUE;
+      int bytes = 0;
+
+      while (bytesRemaining > 0
+          && (bytes = stream.read(buffer, 0, Math.min(bytesRemaining, buffer.length))) != -1) {
+        textArray.write(buffer, 0, bytes);
+        bytesRemaining -= bytes;
+      }
+      stream.close();
+    } catch (IOException e) {
+      throw new RuntimeException("Failed to read license or metadata text.", e);
+    }
+    try {
+      return textArray.toString("UTF-8");
+    } catch (UnsupportedEncodingException e) {
+      throw new RuntimeException("Unsupported encoding UTF8. This should always be supported.", e);
+    }
+  }
+}
diff --git a/java/com/android/dialer/about/res/layout/dummy_placeholder.xml b/java/com/android/dialer/about/res/layout/dummy_placeholder.xml
new file mode 100644
index 0000000..6d867ef
--- /dev/null
+++ b/java/com/android/dialer/about/res/layout/dummy_placeholder.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<!-- See Licenses.java for why this exists. -->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+          android:id="@+id/dummy_placeholder"
+          android:layout_width="wrap_content"
+          android:layout_height="wrap_content" />
diff --git a/java/com/android/dialer/about/res/layout/license.xml b/java/com/android/dialer/about/res/layout/license.xml
new file mode 100644
index 0000000..ef67982
--- /dev/null
+++ b/java/com/android/dialer/about/res/layout/license.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="?android:attr/listPreferredItemHeight"
+        android:gravity="center_vertical"
+        android:paddingRight="?android:attr/scrollbarSize"
+        android:baselineAligned="false" >
+
+    <TextView android:id="@+id/license"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="15dip"
+            android:layout_marginLeft="15dip"
+            android:layout_marginEnd="6dip"
+            android:layout_marginRight="6dip"
+            android:layout_marginTop="6dip"
+            android:layout_marginBottom="6dip"
+            android:singleLine="true"
+            android:textAppearance="?android:attr/textAppearanceMediumInverse"
+            android:textColor="?android:attr/textColorPrimary"
+            android:ellipsize="marquee"
+            android:fadingEdge="horizontal" />
+
+</LinearLayout>
diff --git a/java/com/android/dialer/about/res/layout/license_menu_activity.xml b/java/com/android/dialer/about/res/layout/license_menu_activity.xml
new file mode 100644
index 0000000..8ed47bf
--- /dev/null
+++ b/java/com/android/dialer/about/res/layout/license_menu_activity.xml
@@ -0,0 +1,35 @@
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:orientation="vertical"
+              android:layout_height="match_parent"
+              android:layout_width="match_parent"
+              android:background="@android:color/transparent">
+
+        <ListView android:id="@+id/license_list"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:paddingTop="0dp"
+                android:paddingBottom="0dp"
+                android:paddingLeft="16dp"
+                android:paddingRight="16dp"
+                android:scrollbarStyle="outsideOverlay"
+                android:clipToPadding="false"
+                android:drawSelectorOnTop="false"
+                android:cacheColorHint="@android:color/transparent"
+                android:scrollbarAlwaysDrawVerticalTrack="true" />
+</LinearLayout>
diff --git a/java/com/android/dialer/about/res/layout/license_scrollview.xml b/java/com/android/dialer/about/res/layout/license_scrollview.xml
new file mode 100644
index 0000000..f58bc2f
--- /dev/null
+++ b/java/com/android/dialer/about/res/layout/license_scrollview.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/license_activity_scrollview"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+      <TextView
+          android:id="@+id/license_activity_textview"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
+          android:typeface="monospace"
+          android:paddingStart="16dip"
+          android:paddingLeft="16dip"
+          android:paddingEnd="16dip"
+          android:paddingRight="16dip"
+          android:paddingTop="8dip"
+          android:paddingBottom="8dip" />
+</ScrollView>
\ No newline at end of file
diff --git a/java/com/android/dialer/about/res/raw/keep.xml b/java/com/android/dialer/about/res/raw/keep.xml
new file mode 100644
index 0000000..e41b8b8
--- /dev/null
+++ b/java/com/android/dialer/about/res/raw/keep.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<resources xmlns:tools="http://schemas.android.com/tools"
+    tools:keep="@raw/*"/>
+
diff --git a/java/com/android/dialer/about/res/raw/third_party_license_metadata b/java/com/android/dialer/about/res/raw/third_party_license_metadata
new file mode 100644
index 0000000..1acf348
--- /dev/null
+++ b/java/com/android/dialer/about/res/raw/third_party_license_metadata
@@ -0,0 +1,34 @@
+40:10695 Android Annotations Support Library
+10770:10695 Android Compat Support Library
+21501:10695 Android Core UI Support Library
+32235:10691 Android Core Utils Support Library
+42961:10695 Android Design Support Library
+53694:10695 Android Fragments Support Library
+64426:10695 Android Graphics Support Library
+75162:10691 Android Media Compat Support Library
+85892:10691 Android Transition Support Library
+96621:10695 Android Compatibility Library v13
+107353:10695 Android Compatibility Library v4
+118085:10695 Android Compatibility Library v7
+128796:16013 Android SDK
+144828:11358 Android Common
+156196:4771 Glide
+160982:11358 Guava JDK5
+172358:12847 jibercsclient
+185224:10173 libphonenumber
+195416:10699 shortcutbadger
+206126:11358 Volley
+217495:18982 mime4j
+236493:11358 Google Auto
+247862:11358 Dagger
+259236:11357 Error Prone
+270604:11358 J2ObjC
+281984:11359 Apache Commons IO
+293355:11358 JSR 250
+304725:1602 JSR 305
+306339:11365 JSR 330
+317738:12847 carrierservices
+317738:12847 rcsclientlib
+330614:11358 material_components
+330614:11358 lib
+341987:11362 Guava JDK7
diff --git a/java/com/android/dialer/about/res/raw/third_party_licenses b/java/com/android/dialer/about/res/raw/third_party_licenses
new file mode 100644
index 0000000..c56f8a4
--- /dev/null
+++ b/java/com/android/dialer/about/res/raw/third_party_licenses
@@ -0,0 +1,6414 @@
+
+
+Android Annotations Support Library:
+
+
+   Copyright (c) 2005-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.
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+
+
+Android Compat Support Library:
+
+
+   Copyright (c) 2005-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.
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+
+
+Android Core UI Support Library:
+
+
+   Copyright (c) 2005-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.
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+
+
+Android Core Utils Support Library:
+
+
+ Copyright (c) 2005-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.
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+Android Design Support Library:
+
+
+   Copyright (c) 2005-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.
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+
+
+Android Fragments Support Library:
+
+
+   Copyright (c) 2005-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.
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+
+
+Android Graphics Support Library:
+
+
+   Copyright (c) 2005-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.
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+
+
+Android Media Compat Support Library:
+
+
+ Copyright (c) 2005-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.
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+Android Transition Support Library:
+
+
+ Copyright (c) 2005-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.
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+Android Compatibility Library v13:
+
+
+   Copyright (c) 2005-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.
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+
+
+Android Compatibility Library v4:
+
+
+   Copyright (c) 2005-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.
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+
+
+Android Compatibility Library v7:
+
+
+   Copyright (c) 2005-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.
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+
+
+Android SDK:
+
+ANDROID SOFTWARE DEVELOPMENT KIT
+
+Terms and Conditions
+
+This is the Android Software Development Kit License Agreement.
+
+1. Introduction
+
+1.1 The Android Software Development Kit (referred to in this License Agreement as the "SDK" and
+specifically including the Android system files, packaged APIs, and Google APIs add-ons) is
+licensed to you subject to the terms of this License Agreement. This License Agreement forms a
+legally binding contract between you and Google in relation to your use of the SDK.
+
+1.2 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600
+Amphitheatre Parkway, Mountain View, CA 94043, United States.
+
+2. Accepting this License Agreement
+
+2.1 In order to use the SDK, you must first agree to this License Agreement. You may not use the
+SDK if you do not accept this License Agreement.
+
+2.2 You can accept this License Agreement by:
+
+(A) clicking to accept or agree to this License Agreement, where this option is made available to
+you; or
+
+(B) by actually using the SDK. In this case, you agree that use of the SDK constitutes acceptance of
+the Licensing Agreement from that point onwards.
+
+2.3 You may not use the SDK and may not accept the Licensing Agreement if you are a person barred
+from receiving the SDK under the laws of the United States or other countries including the country
+in which you are resident or from which you use the SDK.
+
+2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other
+entity, you represent and warrant that you have full legal authority to bind your employer or such
+entity to this License Agreement. If you do not have the requisite authority, you may not accept
+the Licensing Agreement or use the SDK on behalf of your employer or other entity.
+
+3. SDK License from Google
+
+3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide,
+royalty-free, non- assignable and non-exclusive license to use the SDK solely to develop
+applications to run on the Android platform.
+
+3.2 You agree that Google or third parties own all legal right, title and interest in and to the
+SDK, including any Intellectual Property Rights that subsist in the SDK. "Intellectual Property
+Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law,
+and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+
+3.3 Except to the extent required by applicable third party licenses, you may not copy (except for
+backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create
+derivative works of the SDK or any part of the SDK. Except to the extent required by applicable
+third party licenses, you may not load any part of the SDK onto a mobile handset or any other
+hardware device except a personal computer, combine any part of the SDK with other software, or
+distribute any software or device incorporating a part of the SDK.
+
+3.4 Use, reproduction and distribution of components of the SDK licensed under an open source
+software license are governed solely by the terms of that open source software license and not
+this License Agreement.
+
+3.5 You agree that the form and nature of the SDK that Google provides may change without prior
+notice to you and that future versions of the SDK may be incompatible with applications developed
+on previous versions of the SDK. You agree that Google may stop (permanently or temporarily)
+providing the SDK (or any features within the SDK) to you or to users generally at Google's sole
+discretion, without prior notice to you.
+
+3.6 Nothing in this License Agreement gives you a right to use any of Google's trade names,
+trademarks, service marks, logos, domain names, or other distinctive brand features.
+
+3.7 You agree that you will not remove, obscure, or alter any proprietary rights notices (including
+copyright and trademark notices) that may be affixed to or contained within the SDK.
+
+4. Use of the SDK by You
+
+4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under
+this License Agreement in or to any software applications that you develop using the SDK, including
+any intellectual property rights that subsist in those applications.
+
+4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) this
+License Agreement and (b) any applicable law, regulation or generally accepted practices or
+guidelines in the relevant jurisdictions (including any laws regarding the export of data or
+software to and from the United States or other relevant countries).
+
+4.3 You agree that if you use the SDK to develop applications for general public users, you will
+protect the privacy and legal rights of those users. If the users provide you with user names,
+passwords, or other login information or personal information, your must make the users aware that
+the information will be available to your application, and you must provide legally adequate privacy
+notice and protection for those users. If your application stores personal or sensitive information
+provided by users, it must do so securely. If the user provides your application with Google Account
+information, your application may only use that information to access the user's Google Account
+when, and for the limited purposes for which, the user has given you permission to do so.
+
+4.4 You agree that you will not engage in any activity with the SDK, including the development or
+distribution of an application, that interferes with, disrupts, damages, or accesses in an
+unauthorized manner the servers, networks, or other properties or services of any third party
+including, but not limited to, Google or any mobile communications carrier.
+
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or
+to any third party for) any data, content, or resources that you create, transmit or display through
+the Android platform and/or applications for the Android platform, and for the consequences of your
+actions (including any loss or damage which Google may suffer) by doing so.
+
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or
+to any third party for) any breach of your obligations under this License Agreement, any applicable
+third party contract or Terms of Service, or any applicable law or regulation, and for the
+consequences (including any loss or damage which Google or any third party may suffer) of any such
+breach.
+
+5. Your Developer Credentials
+
+5.1 You agree that you are responsible for maintaining the confidentiality of any developer
+credentials that may be issued to you by Google or which you may choose yourself and that you will
+be solely responsible for all applications that are developed under your developer credentials.
+
+6. Privacy and Information
+
+6.1 In order to continually innovate and improve the SDK, Google may collect certain usage
+statistics from the software including but not limited to a unique identifier, associated IP
+address, version number of the software, and information on which tools and/or services in the SDK
+are being used and how they are being used. Before any of this information is collected, the SDK
+will notify you and seek your consent. If you withhold consent, the information will not be
+collected.
+
+6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in
+accordance with Google's Privacy Policy.
+
+7. Third Party Applications for the Android Platform
+
+7.1 If you use the SDK to run applications developed by a third party or that access data, content
+or resources provided by a third party, you agree that Google is not responsible for those
+applications, data, content, or resources. You understand that all data, content or resources which
+you may access through such third party applications are the sole responsibility of the person from
+which they originated and that Google is not liable for any loss or damage that you may experience
+as a result of the use or access of any of those third party applications, data, content, or
+resources.
+
+7.2 You should be aware the data, content, and resources presented to you through such a third party
+application may be protected by intellectual property rights which are owned by the providers (or by
+other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute
+or create derivative works based on these data, content, or resources (either in whole or in part)
+unless you have been specifically given permission to do so by the relevant owners.
+
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may
+be subject to separate terms between you and the relevant third party. In that case, this License
+Agreement does not affect your legal relationship with these third parties.
+
+8. Using Android APIs
+
+8.1 Google Data APIs
+
+8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be
+protected by intellectual property rights which are owned by Google or those parties that provide
+the data (or by other persons or companies on their behalf). Your use of any such API may be subject
+to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create
+derivative works based on this data (either in whole or in part) unless allowed by the relevant
+Terms of Service.
+
+8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you
+shall retrieve data only with the user's explicit consent and only when, and for the limited
+purposes for which, the user has given you permission to do so.
+
+9. Terminating this License Agreement
+
+9.1 This License Agreement will continue to apply until terminated by either you or Google as set
+out below.
+
+9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the SDK
+and any relevant developer credentials.
+
+9.3 Google may at any time, terminate this License Agreement with you if:
+
+(A) you have breached any provision of this License Agreement; or
+
+(B) Google is required to do so by law; or
+
+(C) the partner with whom Google offered certain parts of SDK (such as APIs) to you has terminated
+its relationship with Google or ceased to offer certain parts of the SDK to you; or
+
+(D) Google decides to no longer providing the SDK or certain parts of the SDK to users in the
+country in which you are resident or from which you use the service, or the provision of the SDK or
+certain SDK services to you by Google is, in Google's sole discretion, no longer commercially
+viable.
+
+9.4 When this License Agreement comes to an end, all of the legal rights, obligations and
+liabilities that you and Google have benefited from, been subject to (or which have accrued over
+time whilst this License Agreement has been in force) or which are expressed to continue
+indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall
+continue to apply to such rights, obligations and liabilities indefinitely.
+
+10. DISCLAIMER OF WARRANTIES
+
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE
+SDK IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+
+10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE
+SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR
+COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
+
+10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+11. LIMITATION OF LIABILITY
+
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS
+LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY
+LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN
+AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+
+12. Indemnification
+
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless
+Google, its affiliates and their respective directors, officers, employees and agents from and
+against any and all claims, actions, suits or proceedings, as well as any and all losses,
+liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or
+accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any
+copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any
+person or defames any person or violates their rights of publicity or privacy, and (c) any
+non-compliance by you with this License Agreement.
+
+13. Changes to the License Agreement
+
+13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK.
+When these changes are made, Google will make a new version of the License Agreement available on
+the website where the SDK is made available.
+
+14. General Legal Terms
+
+14.1 This License Agreement constitute the whole legal agreement between you and Google and govern
+your use of the SDK (excluding any services which Google may provide to you under a separate written
+agreement), and completely replace any prior agreements between you and Google in relation to the
+SDK.
+
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is
+contained in this License Agreement (or which Google has the benefit of under any applicable law),
+this will not be taken to be a formal waiver of Google's rights and that those rights or remedies
+will still be available to Google.
+
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision
+of this License Agreement is invalid, then that provision will be removed from this License
+Agreement without affecting the rest of this License Agreement. The remaining provisions of this
+License Agreement will continue to be valid and enforceable.
+
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the
+parent shall be third party beneficiaries to this License Agreement and that such other companies
+shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that
+confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall
+be third party beneficiaries to this License Agreement.
+
+14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST
+COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE
+LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+
+14.6 The rights granted in this License Agreement may not be assigned or transferred by either you
+or Google without the prior written approval of the other party. Neither you nor Google shall be
+permitted to delegate their responsibilities or obligations under this License Agreement without the
+prior written approval of the other party.
+
+14.7 This License Agreement, and your relationship with Google under this License Agreement, shall
+be governed by the laws of the State of California without regard to its conflict of laws
+provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located
+within the county of Santa Clara, California to resolve any legal matter arising from this License
+Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for
+injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+
+April 10, 2009
+
+
+Android Common:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+Glide:
+
+Covers library/
+
+Copyright 2014 Google, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are
+permitted provided that the following conditions are met:
+
+   1. Redistributions of source code must retain the above copyright notice, this list of
+         conditions and the following disclaimer.
+
+   2. Redistributions in binary form must reproduce the above copyright notice, this list
+         of conditions and the following disclaimer in the documentation and/or other materials
+         provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY GOOGLE, INC. ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE, INC. OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+The views and conclusions contained in the software and documentation are those of the
+authors and should not be interpreted as representing official policies, either expressed
+or implied, of Google, Inc.
+
+--------------------------------------------------------------------------
+Covers third_party/gif_decoder
+
+Copyright (c) 2013 Xcellent Creations, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+--------------------------------------------------------------------------
+Covers third_party/disklrucache
+
+Copyright 2012 Jake Wharton
+Copyright 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.
+--------------------------------------------------------------------------
+Covers third_party/gif_encoder/AnimatedGifEncoder.java and 
+third_party/gif_encoder/LZWEncoder.java:
+
+No copyright asserted on the source code of this class. May be used for any
+purpose, however, refer to the Unisys LZW patent for restrictions on use of
+the associated LZWEncoder class. Please forward any corrections to
+kweiner@fmsware.com.
+
+-----------------------------------------------------------------------------
+Covers third_party/gif_encoder/NeuQuant.java
+
+Copyright (c) 1994 Anthony Dekker
+
+NEUQUANT Neural-Net quantization algorithm by Anthony Dekker, 1994. See
+"Kohonen neural networks for optimal colour quantization" in "Network:
+Computation in Neural Systems" Vol. 5 (1994) pp 351-367. for a discussion of
+the algorithm.
+
+Any party obtaining a copy of these files from the author, directly or
+indirectly, is granted, free of charge, a full and unrestricted irrevocable,
+world-wide, paid up, royalty-free, nonexclusive right and license to deal in
+this software and documentation files (the "Software"), including without
+limitation the rights to use, copy, modify, merge, publish, distribute,
+sublicense, and/or sell copies of the Software, and to permit persons who
+receive copies from any such party to do so, with the only requirement being
+that this copyright notice remain intact.
+
+
+Guava JDK5:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+jibercsclient:
+
+These components
+  com.google.android.rcs.core,
+  com.google.android.rcs.core.utils.CaseInsensitiveMap,
+  com.google.android.rcs.core.utils.DateTime,
+  com.google.android.rcs.core.utils.InetAddresses,
+  com.google.android.rcs.core.network.ConnectivityMonitor,
+  com.google.android.rcs.client.PrivateDataStorage,
+  com.google.android.rcs.client.utils.FastXmlSerializer,
+  com.google.android.rcs.client.utils.XmlUtils,
+  com.google.android.rcs.client.utils.QueuedWork
+are licensed under Apache v2.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+===============================================================================
+
+These components
+  com.google.android.rcs.core.utils.FastBase64,
+  com.google.android.rcs.core.utils.LibraryLoaderHelper
+are licensed under BSD.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+   * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+   * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+
+   * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+libphonenumber:
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+
+shortcutbadger:
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+
+Volley:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+mime4j:
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+   
+   
+   
+
+   THIS PRODUCT ALSO INCLUDES THIRD PARTY SOFTWARE REDISTRIBUTED UNDER THE
+   FOLLOWING LICENSES:
+
+    Apache Commons Logging, 
+       The Apache Software License, Version 1.1 (commons-logging-1.1.1.jar)
+      
+         The Apache Software License, Version 1.1
+        
+         Redistribution and use in source and binary forms, with or without
+         modification, are permitted provided that the following conditions
+         are met:
+        
+         1. Redistributions of source code must retain the above copyright
+            notice, this list of conditions and the following disclaimer.
+        
+         2. Redistributions in binary form must reproduce the above copyright
+            notice, this list of conditions and the following disclaimer in
+            the documentation and/or other materials provided with the
+            distribution.
+        
+         3. The end-user documentation included with the redistribution,
+            if any, must include the following acknowledgment:
+               "This product includes software developed by the
+                Apache Software Foundation (http://www.apache.org/)."
+            Alternately, this acknowledgment may appear in the software itself,
+            if and wherever such third-party acknowledgments normally appear.
+        
+         4. The names "Apache" and "Apache Software Foundation" must
+            not be used to endorse or promote products derived from this
+            software without prior written permission. For written
+            permission, please contact apache@apache.org.
+        
+         5. Products derived from this software may not be called "Apache",
+            nor may "Apache" appear in their name, without prior written
+            permission of the Apache Software Foundation.
+        
+         THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+         WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+         OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+         DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+         ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+         SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+         LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+         USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+         ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+         OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+         OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+         SUCH DAMAGE.
+        
+
+    Test messages from the Perl-MIME-Tools project,
+    
+                     The "Artistic License"
+        
+                        Preamble
+        
+        The intent of this document is to state the conditions under which a
+        Package may be copied, such that the Copyright Holder maintains some
+        semblance of artistic control over the development of the package,
+        while giving the users of the package the right to use and distribute
+        the Package in a more-or-less customary fashion, plus the right to make
+        reasonable modifications.
+        
+        Definitions:
+        
+            "Package" refers to the collection of files distributed by the
+            Copyright Holder, and derivatives of that collection of files
+            created through textual modification.
+        
+            "Standard Version" refers to such a Package if it has not been
+            modified, or has been modified in accordance with the wishes
+            of the Copyright Holder as specified below.
+        
+            "Copyright Holder" is whoever is named in the copyright or
+            copyrights for the package.
+        
+            "You" is you, if you're thinking about copying or distributing
+            this Package.
+        
+            "Reasonable copying fee" is whatever you can justify on the
+            basis of media cost, duplication charges, time of people involved,
+            and so on.  (You will not be required to justify it to the
+            Copyright Holder, but only to the computing community at large
+            as a market that must bear the fee.)
+        
+            "Freely Available" means that no fee is charged for the item
+            itself, though there may be fees involved in handling the item.
+            It also means that recipients of the item may redistribute it
+            under the same conditions they received it.
+        
+        1. You may make and give away verbatim copies of the source form of the
+        Standard Version of this Package without restriction, provided that you
+        duplicate all of the original copyright notices and associated disclaimers.
+        
+        2. You may apply bug fixes, portability fixes and other modifications
+        derived from the Public Domain or from the Copyright Holder.  A Package
+        modified in such a way shall still be considered the Standard Version.
+        
+        3. You may otherwise modify your copy of this Package in any way, provided
+        that you insert a prominent notice in each changed file stating how and
+        when you changed that file, and provided that you do at least ONE of the
+        following:
+        
+            a) place your modifications in the Public Domain or otherwise make them
+            Freely Available, such as by posting said modifications to Usenet or
+            an equivalent medium, or placing the modifications on a major archive
+            site such as uunet.uu.net, or by allowing the Copyright Holder to include
+            your modifications in the Standard Version of the Package.
+        
+            b) use the modified Package only within your corporation or organization.
+        
+            c) rename any non-standard executables so the names do not conflict
+            with standard executables, which must also be provided, and provide
+            a separate manual page for each non-standard executable that clearly
+            documents how it differs from the Standard Version.
+        
+            d) make other distribution arrangements with the Copyright Holder.
+        
+        4. You may distribute the programs of this Package in object code or
+        executable form, provided that you do at least ONE of the following:
+        
+            a) distribute a Standard Version of the executables and library files,
+            together with instructions (in the manual page or equivalent) on where
+            to get the Standard Version.
+        
+            b) accompany the distribution with the machine-readable source of
+            the Package with your modifications.
+        
+            c) give non-standard executables non-standard names, and clearly
+            document the differences in manual pages (or equivalent), together
+            with instructions on where to get the Standard Version.
+        
+            d) make other distribution arrangements with the Copyright Holder.
+        
+        5. You may charge a reasonable copying fee for any distribution of this
+        Package.  You may charge any fee you choose for support of this
+        Package.  You may not charge a fee for this Package itself.  However,
+        you may distribute this Package in aggregate with other (possibly
+        commercial) programs as part of a larger (possibly commercial) software
+        distribution provided that you do not advertise this Package as a
+        product of your own.  You may embed this Package's interpreter within
+        an executable of yours (by linking); this shall be construed as a mere
+        form of aggregation, provided that the complete Standard Version of the
+        interpreter is so embedded.
+        
+        6. The scripts and library files supplied as input to or produced as
+        output from the programs of this Package do not automatically fall
+        under the copyright of this Package, but belong to whoever generated
+        them, and may be sold commercially, and may be aggregated with this
+        Package.  If such scripts or library files are aggregated with this
+        Package via the so-called "undump" or "unexec" methods of producing a
+        binary executable image, then distribution of such an image shall
+        neither be construed as a distribution of this Package nor shall it
+        fall under the restrictions of Paragraphs 3 and 4, provided that you do
+        not represent such an executable image as a Standard Version of this
+        Package.
+        
+        7. C subroutines (or comparably compiled subroutines in other
+        languages) supplied by you and linked into this Package in order to
+        emulate subroutines and variables of the language defined by this
+        Package shall not be considered part of this Package, but are the
+        equivalent of input as in Paragraph 6, provided these subroutines do
+        not change the language in any way that would cause it to fail the
+        regression tests for the language.
+        
+        8. Aggregation of this Package with a commercial distribution is always
+        permitted provided that the use of this Package is embedded; that is,
+        when no overt attempt is made to make this Package's interfaces visible
+        to the end user of the commercial distribution.  Such use shall not be
+        construed as a distribution of this Package.
+        
+        9. The name of the Copyright Holder may not be used to endorse or promote
+        products derived from this software without specific prior written permission.
+        
+        10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+        IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+        WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+        
+                        The End
+
+    
+    
+
+Google Auto:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+Dagger:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+Error Prone:
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+J2ObjC:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+Apache Commons IO:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+JSR 250:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+JSR 305:
+
+Copyright (c) 2007-2009, JSR305 expert group
+All rights reserved.
+
+http://www.opensource.org/licenses/bsd-license.php
+
+Redistribution and use in source and binary forms, with or without 
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice, 
+      this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above copyright notice, 
+      this list of conditions and the following disclaimer in the documentation 
+      and/or other materials provided with the distribution.
+    * Neither the name of the JSR305 expert group nor the names of its 
+      contributors may be used to endorse or promote products derived from 
+      this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
+POSSIBILITY OF SUCH DAMAGE.
+
+
+JSR 330:
+
+JSR-330
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+carrierservices, rcsclientlib:
+
+These components
+  com.google.android.rcs.core,
+  com.google.android.rcs.core.utils.CaseInsensitiveMap,
+  com.google.android.rcs.core.utils.DateTime,
+  com.google.android.rcs.core.utils.InetAddresses,
+  com.google.android.rcs.core.network.ConnectivityMonitor,
+  com.google.android.rcs.client.PrivateDataStorage,
+  com.google.android.rcs.client.utils.FastXmlSerializer,
+  com.google.android.rcs.client.utils.XmlUtils,
+  com.google.android.rcs.client.utils.QueuedWork
+are licensed under Apache v2.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+===============================================================================
+
+These components
+  com.google.android.rcs.core.utils.FastBase64,
+  com.google.android.rcs.core.utils.LibraryLoaderHelper
+are licensed under BSD.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+   * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+   * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+
+   * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+material_components, lib:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+Guava JDK7:
+
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+   
diff --git a/java/com/android/dialer/about/res/values-af/strings.xml b/java/com/android/dialer/about/res/values-af/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-af/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-am/strings.xml b/java/com/android/dialer/about/res/values-am/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-am/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ar/strings.xml b/java/com/android/dialer/about/res/values-ar/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ar/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-az/strings.xml b/java/com/android/dialer/about/res/values-az/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-az/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/about/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-be/strings.xml b/java/com/android/dialer/about/res/values-be/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-be/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-bg/strings.xml b/java/com/android/dialer/about/res/values-bg/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-bg/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-bn/strings.xml b/java/com/android/dialer/about/res/values-bn/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-bn/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-bs/strings.xml b/java/com/android/dialer/about/res/values-bs/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-bs/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ca/strings.xml b/java/com/android/dialer/about/res/values-ca/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ca/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-cs/strings.xml b/java/com/android/dialer/about/res/values-cs/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-cs/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-da/strings.xml b/java/com/android/dialer/about/res/values-da/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-da/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-de/strings.xml b/java/com/android/dialer/about/res/values-de/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-de/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-el/strings.xml b/java/com/android/dialer/about/res/values-el/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-el/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-en-rAU/strings.xml b/java/com/android/dialer/about/res/values-en-rAU/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-en-rAU/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-en-rGB/strings.xml b/java/com/android/dialer/about/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-en-rGB/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-en-rIN/strings.xml b/java/com/android/dialer/about/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-en-rIN/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-es-rUS/strings.xml b/java/com/android/dialer/about/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-es-rUS/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-es/strings.xml b/java/com/android/dialer/about/res/values-es/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-es/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-et/strings.xml b/java/com/android/dialer/about/res/values-et/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-et/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-eu/strings.xml b/java/com/android/dialer/about/res/values-eu/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-eu/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-fa/strings.xml b/java/com/android/dialer/about/res/values-fa/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-fa/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-fi/strings.xml b/java/com/android/dialer/about/res/values-fi/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-fi/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-fr-rCA/strings.xml b/java/com/android/dialer/about/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-fr-rCA/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-fr/strings.xml b/java/com/android/dialer/about/res/values-fr/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-fr/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-gl/strings.xml b/java/com/android/dialer/about/res/values-gl/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-gl/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-gu/strings.xml b/java/com/android/dialer/about/res/values-gu/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-gu/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-hi/strings.xml b/java/com/android/dialer/about/res/values-hi/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-hi/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-hr/strings.xml b/java/com/android/dialer/about/res/values-hr/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-hr/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-hu/strings.xml b/java/com/android/dialer/about/res/values-hu/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-hu/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-hy/strings.xml b/java/com/android/dialer/about/res/values-hy/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-hy/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-in/strings.xml b/java/com/android/dialer/about/res/values-in/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-in/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-is/strings.xml b/java/com/android/dialer/about/res/values-is/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-is/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-it/strings.xml b/java/com/android/dialer/about/res/values-it/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-it/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-iw/strings.xml b/java/com/android/dialer/about/res/values-iw/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-iw/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ja/strings.xml b/java/com/android/dialer/about/res/values-ja/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ja/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ka/strings.xml b/java/com/android/dialer/about/res/values-ka/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ka/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-kk/strings.xml b/java/com/android/dialer/about/res/values-kk/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-kk/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-km/strings.xml b/java/com/android/dialer/about/res/values-km/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-km/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-kn/strings.xml b/java/com/android/dialer/about/res/values-kn/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-kn/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ko/strings.xml b/java/com/android/dialer/about/res/values-ko/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ko/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ky/strings.xml b/java/com/android/dialer/about/res/values-ky/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ky/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-lo/strings.xml b/java/com/android/dialer/about/res/values-lo/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-lo/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-lt/strings.xml b/java/com/android/dialer/about/res/values-lt/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-lt/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-lv/strings.xml b/java/com/android/dialer/about/res/values-lv/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-lv/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-mk/strings.xml b/java/com/android/dialer/about/res/values-mk/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-mk/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ml/strings.xml b/java/com/android/dialer/about/res/values-ml/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ml/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-mn/strings.xml b/java/com/android/dialer/about/res/values-mn/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-mn/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-mr/strings.xml b/java/com/android/dialer/about/res/values-mr/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-mr/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ms/strings.xml b/java/com/android/dialer/about/res/values-ms/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ms/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-my/strings.xml b/java/com/android/dialer/about/res/values-my/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-my/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-nb/strings.xml b/java/com/android/dialer/about/res/values-nb/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-nb/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ne/strings.xml b/java/com/android/dialer/about/res/values-ne/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ne/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-nl/strings.xml b/java/com/android/dialer/about/res/values-nl/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-nl/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-no/strings.xml b/java/com/android/dialer/about/res/values-no/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-no/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-pa/strings.xml b/java/com/android/dialer/about/res/values-pa/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-pa/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-pl/strings.xml b/java/com/android/dialer/about/res/values-pl/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-pl/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-pt-rBR/strings.xml b/java/com/android/dialer/about/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-pt-rBR/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-pt-rPT/strings.xml b/java/com/android/dialer/about/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-pt-rPT/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-pt/strings.xml b/java/com/android/dialer/about/res/values-pt/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-pt/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ro/strings.xml b/java/com/android/dialer/about/res/values-ro/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ro/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ru/strings.xml b/java/com/android/dialer/about/res/values-ru/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ru/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-si/strings.xml b/java/com/android/dialer/about/res/values-si/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-si/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-sk/strings.xml b/java/com/android/dialer/about/res/values-sk/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-sk/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-sl/strings.xml b/java/com/android/dialer/about/res/values-sl/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-sl/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-sq/strings.xml b/java/com/android/dialer/about/res/values-sq/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-sq/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-sr/strings.xml b/java/com/android/dialer/about/res/values-sr/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-sr/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-sv/strings.xml b/java/com/android/dialer/about/res/values-sv/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-sv/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-sw/strings.xml b/java/com/android/dialer/about/res/values-sw/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-sw/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ta/strings.xml b/java/com/android/dialer/about/res/values-ta/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ta/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-te/strings.xml b/java/com/android/dialer/about/res/values-te/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-te/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-th/strings.xml b/java/com/android/dialer/about/res/values-th/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-th/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-tl/strings.xml b/java/com/android/dialer/about/res/values-tl/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-tl/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-tr/strings.xml b/java/com/android/dialer/about/res/values-tr/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-tr/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-uk/strings.xml b/java/com/android/dialer/about/res/values-uk/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-uk/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ur/strings.xml b/java/com/android/dialer/about/res/values-ur/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ur/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-uz/strings.xml b/java/com/android/dialer/about/res/values-uz/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-uz/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-vi/strings.xml b/java/com/android/dialer/about/res/values-vi/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-vi/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-zh-rCN/strings.xml b/java/com/android/dialer/about/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-zh-rCN/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-zh-rHK/strings.xml b/java/com/android/dialer/about/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-zh-rHK/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-zh-rTW/strings.xml b/java/com/android/dialer/about/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-zh-rTW/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-zu/strings.xml b/java/com/android/dialer/about/res/values-zu/strings.xml
new file mode 100644
index 0000000..ec60d0e
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-zu/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for build_version_label (3876300343684966840) -->
+    <skip />
+    <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+    <skip />
+    <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+    <skip />
+    <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+    <skip />
+    <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+    <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values/strings.xml b/java/com/android/dialer/about/res/values/strings.xml
new file mode 100644
index 0000000..be7697c
--- /dev/null
+++ b/java/com/android/dialer/about/res/values/strings.xml
@@ -0,0 +1,39 @@
+<resources>
+
+  <!-- Internal preferences key for displaying the build version -->
+  <string name="build_version_key" translatable="false">build_version</string>
+
+  <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
+  <string name="build_version_label">Build version</string>
+
+  <!-- Internal preferences key for displaying the open source license
+       libraries -->
+  <string name="open_source_licenses_key" translatable="false">open_source_licenses</string>
+
+  <!-- Detail label text shown on the About Phone screen to supplement 
+       @string/licenseActivityLabel -->
+  <string name="open_source_license_detail_label">License details for open source software</string>
+
+  <!-- Title for the activity that displays licenses for open source libraries used in the
+       application. -->
+  <string name="licenseActivityLabel">Open source licenses</string>
+
+  <!-- Internal preferences key for displaying the privacy policy -->
+  <string name="privacy_policy_key" translatable="false">privacy_policy</string>
+
+  <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
+  <string name="privacy_policy_label">Privacy policy</string>
+
+  <!-- URL for privacy policy -->
+  <string name="privacy_policy_url" translatable="false">http://www.google.com/policies/privacy</string>
+
+  <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
+  <string name="terms_of_service_label">Terms of service</string>
+
+  <!-- Internal preferences key for displaying the terms of service-->
+  <string name="terms_of_service_key" translatable="false">terms_of_service</string>
+
+  <!-- URL for terms of service -->
+  <string name="terms_of_service_url" translatable="false">http://www.google.com/policies/terms</string>
+
+</resources>
diff --git a/java/com/android/dialer/about/res/xml/about_phone_fragment.xml b/java/com/android/dialer/about/res/xml/about_phone_fragment.xml
new file mode 100644
index 0000000..51f1d3e
--- /dev/null
+++ b/java/com/android/dialer/about/res/xml/about_phone_fragment.xml
@@ -0,0 +1,31 @@
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+  <Preference
+    android:key="@string/build_version_key"
+    android:persistent="false"
+    android:title="@string/build_version_label"/>
+
+  <Preference
+    android:key="@string/open_source_licenses_key"
+    android:persistent="false"
+    android:summary="@string/open_source_license_detail_label"
+    android:title="@string/licenseActivityLabel">
+  </Preference>
+
+  <Preference
+    android:key="@string/privacy_policy_key"
+    android:persistent="false"
+    android:title="@string/privacy_policy_label">
+    <intent
+      android:action="android.intent.action.VIEW"
+      android:data="@string/privacy_policy_url"/>
+  </Preference>
+
+  <Preference
+    android:key="@string/terms_of_service_key"
+    android:persistent="false"
+    android:title="@string/terms_of_service_label">
+    <intent
+      android:action="android.intent.action.VIEW"
+      android:data="@string/terms_of_service_url"/>
+  </Preference>
+</PreferenceScreen>
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index 3318c50..6e2c6be 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -162,7 +162,6 @@
 
   private static final int ACTIVITY_REQUEST_CODE_VOICE_SEARCH = 1;
   public static final int ACTIVITY_REQUEST_CODE_CALL_COMPOSE = 2;
-  public static final int ACTIVITY_REQUEST_CODE_LIGHTBRINGER = 3;
 
   private static final int FAB_SCALE_IN_DELAY_MS = 300;
 
@@ -1489,7 +1488,7 @@
       Menu menu = getMenu();
       MenuItem clearFrequents = menu.findItem(R.id.menu_clear_frequents);
       clearFrequents.setVisible(
-          PermissionsUtil.hasContactsPermissions(DialtactsActivity.this)
+          PermissionsUtil.hasContactsReadPermissions(DialtactsActivity.this)
               && mListsFragment != null
               && mListsFragment.hasFrequents());
 
diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java
index b433e65..2f8a58c 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -108,6 +108,9 @@
 
   public static final String LOAD_DATA_TASK_IDENTIFIER = "load_data";
 
+  public static final String ENABLE_CALL_LOG_MULTI_SELECT = "enable_call_log_multiselect";
+  public static final boolean ENABLE_CALL_LOG_MULTI_SELECT_FLAG = false;
+
   protected final Activity mActivity;
   protected final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
   /** Cache for repeated requests to Telecom/Telephony. */
@@ -228,7 +231,7 @@
         @Override
         public boolean onLongClick(View v) {
           if (ConfigProviderBindings.get(v.getContext())
-                  .getBoolean("enable_call_log_multiselect", true)
+                  .getBoolean(ENABLE_CALL_LOG_MULTI_SELECT, ENABLE_CALL_LOG_MULTI_SELECT_FLAG)
               && mVoicemailPlaybackPresenter != null) {
             if (v.getId() == R.id.primary_action_view || v.getId() == R.id.quick_contact_photo) {
               if (mActionMode == null) {
@@ -373,7 +376,7 @@
 
     mContactInfoCache = contactInfoCache;
 
-    if (!PermissionsUtil.hasContactsPermissions(activity)) {
+    if (!PermissionsUtil.hasContactsReadPermissions(activity)) {
       mContactInfoCache.disableRequestProcessing();
     }
 
diff --git a/java/com/android/dialer/app/calllog/CallLogFragment.java b/java/com/android/dialer/app/calllog/CallLogFragment.java
index 874aeea..6e4b23f 100644
--- a/java/com/android/dialer/app/calllog/CallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/CallLogFragment.java
@@ -200,9 +200,18 @@
     final ContentResolver resolver = activity.getContentResolver();
     mCallLogQueryHandler = new CallLogQueryHandler(activity, resolver, this, mLogLimit);
     mKeyguardManager = (KeyguardManager) activity.getSystemService(Context.KEYGUARD_SERVICE);
-    resolver.registerContentObserver(CallLog.CONTENT_URI, true, mCallLogObserver);
-    resolver.registerContentObserver(
-        ContactsContract.Contacts.CONTENT_URI, true, mContactsObserver);
+
+    if (PermissionsUtil.hasCallLogReadPermissions(getContext())) {
+      resolver.registerContentObserver(CallLog.CONTENT_URI, true, mCallLogObserver);
+    } else {
+      LogUtil.w("CallLogFragment.onCreate", "call log permission not available");
+    }
+    if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
+      resolver.registerContentObserver(
+          ContactsContract.Contacts.CONTENT_URI, true, mContactsObserver);
+    } else {
+      LogUtil.w("CallLogFragment.onCreate", "contacts permission not available.");
+    }
     setHasOptionsMenu(true);
   }
 
@@ -494,7 +503,7 @@
     if (mKeyguardManager != null
         && !mKeyguardManager.inKeyguardRestrictedInputMode()
         && mCallTypeFilter == Calls.VOICEMAIL_TYPE) {
-      CallLogNotificationsQueryHelper.updateVoicemailNotifications(getActivity());
+      CallLogNotificationsService.markNewVoicemailsAsOld(getActivity(), null);
     }
   }
 
diff --git a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
index 278caba..1daccd1 100644
--- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
+++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
@@ -17,7 +17,6 @@
 package com.android.dialer.app.calllog;
 
 import android.app.Activity;
-import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
@@ -45,7 +44,6 @@
 import android.widget.ImageView;
 import android.widget.QuickContactBadge;
 import android.widget.TextView;
-import android.widget.Toast;
 import com.android.contacts.common.ClipboardUtils;
 import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
@@ -62,6 +60,7 @@
 import com.android.dialer.callcomposer.CallComposerActivity;
 import com.android.dialer.callcomposer.CallComposerContact;
 import com.android.dialer.calldetails.CallDetailsEntries;
+import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.compat.CompatUtils;
 import com.android.dialer.lightbringer.Lightbringer;
@@ -258,7 +257,11 @@
     }
     primaryActionButtonView.setOnClickListener(this);
     primaryActionView.setOnClickListener(mExpandCollapseListener);
-    if (mVoicemailPlaybackPresenter != null) {
+    if (mVoicemailPlaybackPresenter != null
+        && ConfigProviderBindings.get(mContext)
+            .getBoolean(
+                CallLogAdapter.ENABLE_CALL_LOG_MULTI_SELECT,
+                CallLogAdapter.ENABLE_CALL_LOG_MULTI_SELECT_FLAG)) {
       primaryActionView.setOnLongClickListener(longPressListener);
       quickContactView.setOnLongClickListener(longPressListener);
     } else {
@@ -792,35 +795,14 @@
       mVoicemailPlaybackPresenter.shareVoicemail();
     } else {
       logCallLogAction(view.getId());
-
       final IntentProvider intentProvider = (IntentProvider) view.getTag();
-      if (intentProvider == null) {
-        return;
+      if (intentProvider != null) {
+        final Intent intent = intentProvider.getIntent(mContext);
+        // See IntentProvider.getCallDetailIntentProvider() for why this may be null.
+        if (intent != null) {
+          DialerUtils.startActivityWithErrorToast(mContext, intent);
+        }
       }
-
-      final Intent intent = intentProvider.getIntent(mContext);
-      // See IntentProvider.getCallDetailIntentProvider() for why this may be null.
-      if (intent == null) {
-        return;
-      }
-
-      // We check to see if we are starting a Lightbringer intent. The reason is Lightbringer
-      // intents need to be started using startActivityForResult instead of the usual startActivity
-      String packageName = intent.getPackage();
-      if (packageName != null && packageName.equals(getLightbringer().getPackageName(mContext))) {
-        startLightbringerActivity(intent);
-      } else {
-        DialerUtils.startActivityWithErrorToast(mContext, intent);
-      }
-    }
-  }
-
-  private void startLightbringerActivity(Intent intent) {
-    try {
-      Activity activity = (Activity) mContext;
-      activity.startActivityForResult(intent, DialtactsActivity.ACTIVITY_REQUEST_CODE_LIGHTBRINGER);
-    } catch (ActivityNotFoundException e) {
-      Toast.makeText(mContext, R.string.activity_not_available, Toast.LENGTH_SHORT).show();
     }
   }
 
diff --git a/java/com/android/dialer/app/calllog/CallLogNotificationsActivity.java b/java/com/android/dialer/app/calllog/CallLogNotificationsActivity.java
index c08d2c0..0b4da75 100644
--- a/java/com/android/dialer/app/calllog/CallLogNotificationsActivity.java
+++ b/java/com/android/dialer/app/calllog/CallLogNotificationsActivity.java
@@ -57,7 +57,7 @@
     String action = intent.getAction();
     switch (action) {
       case ACTION_SEND_SMS_FROM_MISSED_CALL_NOTIFICATION:
-        MissedCallNotifier.getInstance(this)
+        MissedCallNotifier.getIstance(this)
             .sendSmsFromMissedCall(
                 intent.getStringExtra(EXTRA_MISSED_CALL_NUMBER), intent.getData());
         break;
diff --git a/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java b/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
index 4127d1f..e169b8d 100644
--- a/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
+++ b/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
@@ -114,11 +114,6 @@
         MissedCallNotifier.NOTIFICATION_TAG);
   }
 
-  /** Update the voice mail notifications. */
-  public static void updateVoicemailNotifications(Context context) {
-    CallLogNotificationsService.updateVoicemailNotifications(context);
-  }
-
   /** Create a new instance of {@link NewCallsQuery}. */
   public static NewCallsQuery createNewCallsQuery(
       Context context, ContentResolver contentResolver) {
diff --git a/java/com/android/dialer/app/calllog/CallLogNotificationsService.java b/java/com/android/dialer/app/calllog/CallLogNotificationsService.java
index f67837f..7dfd2cb 100644
--- a/java/com/android/dialer/app/calllog/CallLogNotificationsService.java
+++ b/java/com/android/dialer/app/calllog/CallLogNotificationsService.java
@@ -26,7 +26,6 @@
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.telecom.TelecomUtil;
 import com.android.dialer.util.PermissionsUtil;
-import me.leolin.shortcutbadger.ShortcutBadger;
 
 /**
  * Provides operations for managing call-related notifications.
@@ -47,17 +46,6 @@
   /** Action to mark all the new voicemails as old. */
   public static final String ACTION_MARK_NEW_VOICEMAILS_AS_OLD =
       "com.android.dialer.calllog.ACTION_MARK_NEW_VOICEMAILS_AS_OLD";
-  /** Action to update voicemail notifications. */
-  public static final String ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS =
-      "com.android.dialer.calllog.UPDATE_VOICEMAIL_NOTIFICATIONS";
-  /**
-   * Action to update the missed call notifications.
-   *
-   * <p>Includes optional extras {@link #EXTRA_MISSED_CALL_NUMBER} and {@link
-   * #EXTRA_MISSED_CALL_COUNT}.
-   */
-  public static final String ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS =
-      "com.android.dialer.calllog.UPDATE_MISSED_CALL_NOTIFICATIONS";
 
   /** Action to mark all the new missed calls as old. */
   public static final String ACTION_MARK_NEW_MISSED_CALLS_AS_OLD =
@@ -72,22 +60,6 @@
       "com.android.dialer.calllog.CALL_BACK_FROM_MISSED_CALL_NOTIFICATION";
 
   /**
-   * Extra to be included with {@link #ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS} and {@link
-   * #ACTION_CALL_BACK_FROM_MISSED_CALL_NOTIFICATION} to identify the number to display, call or
-   * text back.
-   *
-   * <p>It must be a {@link String}.
-   */
-  public static final String EXTRA_MISSED_CALL_NUMBER = "MISSED_CALL_NUMBER";
-  /**
-   * Extra to be included with {@link #ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS} to represent the
-   * number of missed calls.
-   *
-   * <p>It must be a {@link Integer}
-   */
-  public static final String EXTRA_MISSED_CALL_COUNT = "MISSED_CALL_COUNT";
-
-  /**
    * Extra to be included with {@link #ACTION_INCOMING_POST_CALL} to represent a post call note.
    *
    * <p>It must be a {@link String}
@@ -109,40 +81,6 @@
     super("CallLogNotificationsService");
   }
 
-  /**
-   * Updates notifications for any new voicemails.
-   *
-   * @param context a valid context.
-   */
-  public static void updateVoicemailNotifications(Context context) {
-    if (!TelecomUtil.isDefaultDialer(context)) {
-      LogUtil.i(
-          "CallLogNotificationsService.updateVoicemailNotifications",
-          "not default dialer, ignoring voicemail notifications");
-      return;
-    }
-    if (TelecomUtil.hasReadWriteVoicemailPermissions(context)) {
-      Intent serviceIntent = new Intent(context, CallLogNotificationsService.class);
-      serviceIntent.setAction(CallLogNotificationsService.ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS);
-      context.startService(serviceIntent);
-    }
-  }
-
-  /**
-   * Updates notifications for any new missed calls.
-   *
-   * @param context A valid context.
-   * @param count The number of new missed calls.
-   * @param number The phone number of the newest missed call.
-   */
-  public static void updateMissedCallNotifications(Context context, int count, String number) {
-    Intent serviceIntent = new Intent(context, CallLogNotificationsService.class);
-    serviceIntent.setAction(CallLogNotificationsService.ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS);
-    serviceIntent.putExtra(EXTRA_MISSED_CALL_COUNT, count);
-    serviceIntent.putExtra(EXTRA_MISSED_CALL_NUMBER, number);
-    context.startService(serviceIntent);
-  }
-
   public static void insertPostCallNote(Context context, String number, String postCallNote) {
     Intent serviceIntent = new Intent(context, CallLogNotificationsService.class);
     serviceIntent.setAction(ACTION_INCOMING_POST_CALL);
@@ -165,16 +103,6 @@
     context.startService(serviceIntent);
   }
 
-  public static boolean updateBadgeCount(Context context, int count) {
-    boolean success = ShortcutBadger.applyCount(context, count);
-    LogUtil.i(
-        "CallLogNotificationsService.updateBadgeCount",
-        "update badge count: %d success: %b",
-        count,
-        success);
-    return success;
-  }
-
   @Override
   protected void onHandleIntent(Intent intent) {
     if (intent == null) {
@@ -200,28 +128,21 @@
               mVoicemailQueryHandler.markNewVoicemailsAsOld(intent.getData());
             });
         break;
-      case ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS:
-        DefaultVoicemailNotifier.getInstance(this).updateNotification();
-        break;
-      case ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS:
-        int count = intent.getIntExtra(EXTRA_MISSED_CALL_COUNT, UNKNOWN_MISSED_CALL_COUNT);
-        String number = intent.getStringExtra(EXTRA_MISSED_CALL_NUMBER);
-        MissedCallNotifier.getInstance(this).updateMissedCallNotification(count, number);
-        updateBadgeCount(this, count);
-        break;
       case ACTION_INCOMING_POST_CALL:
         String note = intent.getStringExtra(EXTRA_POST_CALL_NOTE);
         String phoneNumber = intent.getStringExtra(EXTRA_POST_CALL_NUMBER);
-        MissedCallNotifier.getInstance(this).insertPostCallNotification(phoneNumber, note);
+        MissedCallNotifier.getIstance(this).insertPostCallNotification(phoneNumber, note);
         break;
       case ACTION_MARK_NEW_MISSED_CALLS_AS_OLD:
         CallLogNotificationsQueryHelper.removeMissedCallNotifications(this, intent.getData());
         TelecomUtil.cancelMissedCallsNotification(this);
         break;
       case ACTION_CALL_BACK_FROM_MISSED_CALL_NOTIFICATION:
-        MissedCallNotifier.getInstance(this)
+        MissedCallNotifier.getIstance(this)
             .callBackFromMissedCall(
-                intent.getStringExtra(EXTRA_MISSED_CALL_NUMBER), intent.getData());
+                intent.getStringExtra(
+                    MissedCallNotificationReceiver.EXTRA_NOTIFICATION_PHONE_NUMBER),
+                intent.getData());
         break;
       default:
         LogUtil.d("CallLogNotificationsService.onHandleIntent", "could not handle: " + intent);
diff --git a/java/com/android/dialer/app/calllog/CallLogReceiver.java b/java/com/android/dialer/app/calllog/CallLogReceiver.java
index 8fd1502..172d001 100644
--- a/java/com/android/dialer/app/calllog/CallLogReceiver.java
+++ b/java/com/android/dialer/app/calllog/CallLogReceiver.java
@@ -38,9 +38,11 @@
   public void onReceive(Context context, Intent intent) {
     if (VoicemailContract.ACTION_NEW_VOICEMAIL.equals(intent.getAction())) {
       checkVoicemailStatus(context);
-      CallLogNotificationsService.updateVoicemailNotifications(context);
+      PendingResult pendingResult = goAsync();
+      DefaultVoicemailNotifier.updateVoicemailNotifications(context, pendingResult::finish);
     } else if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
-      CallLogNotificationsService.updateVoicemailNotifications(context);
+      PendingResult pendingResult = goAsync();
+      DefaultVoicemailNotifier.updateVoicemailNotifications(context, pendingResult::finish);
     } else {
       LogUtil.w("CallLogReceiver.onReceive", "could not handle: " + intent);
     }
diff --git a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
index d67f122..58fe6fa 100644
--- a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
+++ b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
@@ -54,17 +54,20 @@
 import com.android.dialer.calllogutils.PhoneAccountUtils;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutor.Worker;
+import com.android.dialer.common.concurrent.DialerExecutors;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.notification.NotificationChannelManager;
 import com.android.dialer.notification.NotificationChannelManager.Channel;
 import com.android.dialer.phonenumbercache.ContactInfo;
+import com.android.dialer.telecom.TelecomUtil;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
 /** Shows a voicemail notification in the status bar. */
-public class DefaultVoicemailNotifier {
+public class DefaultVoicemailNotifier implements Worker<Void, Void> {
 
   public static final String TAG = "VoicemailNotifier";
 
@@ -90,14 +93,20 @@
     this.filteredNumberAsyncQueryHandler = filteredNumberAsyncQueryHandler;
   }
 
-  /** Returns an instance of {@link DefaultVoicemailNotifier}. */
-  public static DefaultVoicemailNotifier getInstance(Context context) {
-    return new DefaultVoicemailNotifier(
+  public DefaultVoicemailNotifier(Context context) {
+    this(
         context,
         CallLogNotificationsQueryHelper.getInstance(context),
         new FilteredNumberAsyncQueryHandler(context));
   }
 
+  @Nullable
+  @Override
+  public Void doInBackground(@Nullable Void input) throws Throwable {
+    updateNotification();
+    return null;
+  }
+
   /**
    * Updates the notification and notifies of the call with the given URI.
    *
@@ -106,8 +115,9 @@
    *
    * <p>It is not safe to call this method from the main thread.
    */
+  @VisibleForTesting
   @WorkerThread
-  public void updateNotification() {
+  void updateNotification() {
     Assert.isWorkerThread();
     // Lookup the list of new voicemails to include in the notification.
     final List<NewCall> newCalls = queryHelper.getNewVoicemails();
@@ -178,6 +188,10 @@
             .setGroupSummary(true)
             .setContentIntent(newVoicemailIntent(null));
 
+    if (BuildCompat.isAtLeastO()) {
+      groupSummary.setGroupAlertBehavior(Notification.GROUP_ALERT_CHILDREN);
+    }
+
     NotificationChannelManager.applyChannel(
         groupSummary,
         context,
@@ -392,4 +406,41 @@
     intent.putExtra(DialtactsActivity.EXTRA_CLEAR_NEW_VOICEMAILS, true);
     return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
   }
+
+  /**
+   * Updates the voicemail notifications displayed.
+   *
+   * @param runnable Called when the async update task completes no matter if it succeeds or fails.
+   *     May be null.
+   */
+  static void updateVoicemailNotifications(Context context, Runnable runnable) {
+    if (!TelecomUtil.isDefaultDialer(context)) {
+      LogUtil.i(
+          "DefaultVoicemailNotifier.updateVoicemailNotifications",
+          "not default dialer, not scheduling update to voicemail notifications");
+      return;
+    }
+
+    DialerExecutors.createNonUiTaskBuilder(new DefaultVoicemailNotifier(context))
+        .onSuccess(
+            output -> {
+              LogUtil.i(
+                  "DefaultVoicemailNotifier.updateVoicemailNotifications",
+                  "update voicemail notifications successful");
+              if (runnable != null) {
+                runnable.run();
+              }
+            })
+        .onFailure(
+            throwable -> {
+              LogUtil.i(
+                  "DefaultVoicemailNotifier.updateVoicemailNotifications",
+                  "update voicemail notifications failed");
+              if (runnable != null) {
+                runnable.run();
+              }
+            })
+        .build()
+        .executeParallel(null);
+  }
 }
diff --git a/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java b/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java
index 3a20203..65bb6fa 100644
--- a/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java
+++ b/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java
@@ -13,11 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package com.android.dialer.app.calllog;
 
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
+import android.support.v4.util.Pair;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutors;
+import me.leolin.shortcutbadger.ShortcutBadger;
 
 /**
  * Receives broadcasts that should trigger a refresh of the missed call notification. This includes
@@ -44,7 +49,36 @@
     int count =
         intent.getIntExtra(
             EXTRA_NOTIFICATION_COUNT, CallLogNotificationsService.UNKNOWN_MISSED_CALL_COUNT);
-    String number = intent.getStringExtra(EXTRA_NOTIFICATION_PHONE_NUMBER);
-    CallLogNotificationsService.updateMissedCallNotifications(context, count, number);
+    String phoneNumber = intent.getStringExtra(EXTRA_NOTIFICATION_PHONE_NUMBER);
+
+    PendingResult pendingResult = goAsync();
+
+    DialerExecutors.createNonUiTaskBuilder(MissedCallNotifier.getIstance(context))
+        .onSuccess(
+            output -> {
+              LogUtil.i(
+                  "MissedCallNotificationReceiver.onReceive",
+                  "update missed call notifications successful");
+              updateBadgeCount(context, count);
+              pendingResult.finish();
+            })
+        .onFailure(
+            throwable -> {
+              LogUtil.i(
+                  "MissedCallNotificationReceiver.onReceive",
+                  "update missed call notifications failed");
+              pendingResult.finish();
+            })
+        .build()
+        .executeParallel(new Pair<>(count, phoneNumber));
+  }
+
+  private static void updateBadgeCount(Context context, int count) {
+    boolean success = ShortcutBadger.applyCount(context, count);
+    LogUtil.i(
+        "MissedCallNotificationReceiver.updateBadgeCount",
+        "update badge count: %d success: %b",
+        count,
+        success);
   }
 }
diff --git a/java/com/android/dialer/app/calllog/MissedCallNotifier.java b/java/com/android/dialer/app/calllog/MissedCallNotifier.java
index de07bb4..dd13298 100644
--- a/java/com/android/dialer/app/calllog/MissedCallNotifier.java
+++ b/java/com/android/dialer/app/calllog/MissedCallNotifier.java
@@ -31,6 +31,7 @@
 import android.support.annotation.VisibleForTesting;
 import android.support.annotation.WorkerThread;
 import android.support.v4.os.UserManagerCompat;
+import android.support.v4.util.Pair;
 import android.text.BidiFormatter;
 import android.text.TextDirectionHeuristics;
 import android.text.TextUtils;
@@ -44,6 +45,7 @@
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallIntentBuilder;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutor.Worker;
 import com.android.dialer.notification.NotificationChannelManager;
 import com.android.dialer.notification.NotificationChannelManager.Channel;
 import com.android.dialer.phonenumbercache.ContactInfo;
@@ -55,7 +57,7 @@
 import java.util.Set;
 
 /** Creates a notification for calls that the user missed (neither answered nor rejected). */
-public class MissedCallNotifier {
+public class MissedCallNotifier implements Worker<Pair<Integer, String>, Void> {
 
   /** The tag used to identify notifications from this class. */
   static final String NOTIFICATION_TAG = "MissedCallNotifier";
@@ -72,11 +74,15 @@
     this.callLogNotificationsQueryHelper = callLogNotificationsQueryHelper;
   }
 
-  /** Returns an instance of {@link MissedCallNotifier}. */
-  public static MissedCallNotifier getInstance(Context context) {
-    CallLogNotificationsQueryHelper callLogNotificationsQueryHelper =
-        CallLogNotificationsQueryHelper.getInstance(context);
-    return new MissedCallNotifier(context, callLogNotificationsQueryHelper);
+  static MissedCallNotifier getIstance(Context context) {
+    return new MissedCallNotifier(context, CallLogNotificationsQueryHelper.getInstance(context));
+  }
+
+  @Nullable
+  @Override
+  public Void doInBackground(@Nullable Pair<Integer, String> input) throws Throwable {
+    updateMissedCallNotification(input.first, input.second);
+    return null;
   }
 
   /**
@@ -88,8 +94,9 @@
    * @param number the phone number of the most recent call to display if the call log cannot be
    *     accessed. May be null if unknown.
    */
+  @VisibleForTesting
   @WorkerThread
-  public void updateMissedCallNotification(int count, @Nullable String number) {
+  void updateMissedCallNotification(int count, @Nullable String number) {
     final int titleResId;
     CharSequence expandedText; // The text in the notification's line 1 and 2.
 
@@ -375,7 +382,7 @@
   private PendingIntent createCallBackPendingIntent(String number, @NonNull Uri callUri) {
     Intent intent = new Intent(context, CallLogNotificationsService.class);
     intent.setAction(CallLogNotificationsService.ACTION_CALL_BACK_FROM_MISSED_CALL_NOTIFICATION);
-    intent.putExtra(CallLogNotificationsService.EXTRA_MISSED_CALL_NUMBER, number);
+    intent.putExtra(MissedCallNotificationReceiver.EXTRA_NOTIFICATION_PHONE_NUMBER, number);
     intent.setData(callUri);
     // Use FLAG_UPDATE_CURRENT to make sure any previous pending intent is updated with the new
     // extra.
diff --git a/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java b/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
index 1440218..893d6be 100644
--- a/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
@@ -33,6 +33,7 @@
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
+import com.android.dialer.util.PermissionsUtil;
 
 public class VisualVoicemailCallLogFragment extends CallLogFragment {
 
@@ -54,19 +55,35 @@
   public void onActivityCreated(Bundle savedInstanceState) {
     mVoicemailPlaybackPresenter =
         VoicemailPlaybackPresenter.getInstance(getActivity(), savedInstanceState);
-    getActivity()
-        .getContentResolver()
-        .registerContentObserver(
-            VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
+
+    if (PermissionsUtil.hasReadVoicemailPermissions(getContext())
+        && PermissionsUtil.hasAddVoicemailPermissions(getContext())) {
+      getActivity()
+          .getContentResolver()
+          .registerContentObserver(
+              VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
+    } else {
+      LogUtil.w(
+          "VisualVoicemailCallLogFragment.onActivityCreated",
+          "read voicemail permission unavailable.");
+    }
     super.onActivityCreated(savedInstanceState);
     mVoicemailErrorManager =
         new VoicemailErrorManager(getContext(), getAdapter().getAlertManager(), mModalAlertManager);
-    getActivity()
-        .getContentResolver()
-        .registerContentObserver(
-            VoicemailContract.Status.CONTENT_URI,
-            true,
-            mVoicemailErrorManager.getContentObserver());
+
+    if (PermissionsUtil.hasReadVoicemailPermissions(getContext())
+        && PermissionsUtil.hasAddVoicemailPermissions(getContext())) {
+      getActivity()
+          .getContentResolver()
+          .registerContentObserver(
+              VoicemailContract.Status.CONTENT_URI,
+              true,
+              mVoicemailErrorManager.getContentObserver());
+    } else {
+      LogUtil.w(
+          "VisualVoicemailCallLogFragment.onActivityCreated",
+          "read voicemail permission unavailable.");
+    }
   }
 
   @Override
@@ -118,7 +135,9 @@
     LogUtil.enterBlock("VisualVoicemailCallLogFragment.onPageSelected");
     super.onVisible();
     if (getActivity() != null) {
-      getActivity().sendBroadcast(new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL));
+      Intent intent = new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL);
+      intent.setPackage(getActivity().getPackageName());
+      getActivity().sendBroadcast(intent);
       Logger.get(getActivity()).logImpression(DialerImpression.Type.VVM_TAB_VIEWED);
       getActivity().setVolumeControlStream(VoicemailAudioManager.PLAYBACK_STREAM);
     }
diff --git a/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java b/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java
index 0243947..777f4c7 100644
--- a/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java
+++ b/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java
@@ -20,14 +20,12 @@
 import android.content.ContentResolver;
 import android.content.ContentValues;
 import android.content.Context;
-import android.content.Intent;
 import android.net.Uri;
 import android.provider.CallLog.Calls;
 import android.support.annotation.MainThread;
 import android.support.annotation.Nullable;
 import com.android.dialer.app.R;
 import com.android.dialer.common.Assert;
-import com.android.dialer.common.LogUtil;
 import com.android.dialer.notification.GroupedNotificationUtil;
 
 /** Handles asynchronous queries to the call log for voicemail. */
@@ -79,17 +77,4 @@
         R.id.notification_visual_voicemail,
         DefaultVoicemailNotifier.VISUAL_VOICEMAIL_NOTIFICATION_TAG);
   }
-
-  @Override
-  protected void onUpdateComplete(int token, Object cookie, int result) {
-    if (token == UPDATE_MARK_VOICEMAILS_AS_OLD_TOKEN) {
-      if (mContext != null) {
-        Intent serviceIntent = new Intent(mContext, CallLogNotificationsService.class);
-        serviceIntent.setAction(CallLogNotificationsService.ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS);
-        mContext.startService(serviceIntent);
-      } else {
-        LogUtil.w(TAG, "Unknown update completed: ignoring: " + token);
-      }
-    }
-  }
 }
diff --git a/java/com/android/dialer/app/dialpad/DialpadFragment.java b/java/com/android/dialer/app/dialpad/DialpadFragment.java
index a0c3484..e9d57b3 100644
--- a/java/com/android/dialer/app/dialpad/DialpadFragment.java
+++ b/java/com/android/dialer/app/dialpad/DialpadFragment.java
@@ -447,7 +447,7 @@
           setFormattedDigits(converted, null);
           return true;
         } else {
-          if (!PermissionsUtil.hasContactsPermissions(getActivity())) {
+          if (!PermissionsUtil.hasContactsReadPermissions(getActivity())) {
             return false;
           }
           String type = intent.getType();
diff --git a/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java b/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java
index 175360c..a0c8b18 100644
--- a/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java
+++ b/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java
@@ -77,7 +77,7 @@
       LogUtil.v(TAG, "Load in background " + mQuery);
     }
 
-    if (!PermissionsUtil.hasContactsPermissions(mContext)) {
+    if (!PermissionsUtil.hasContactsReadPermissions(mContext)) {
       return new MatrixCursor(PhoneQuery.PROJECTION_PRIMARY);
     }
 
diff --git a/java/com/android/dialer/app/list/ListsFragment.java b/java/com/android/dialer/app/list/ListsFragment.java
index 0249893..8dd52a9 100644
--- a/java/com/android/dialer/app/list/ListsFragment.java
+++ b/java/com/android/dialer/app/list/ListsFragment.java
@@ -48,6 +48,7 @@
 import com.android.dialer.logging.Logger;
 import com.android.dialer.logging.ScreenEvent;
 import com.android.dialer.speeddial.SpeedDialFragment;
+import com.android.dialer.util.PermissionsUtil;
 import com.android.dialer.voicemailstatus.VisualVoicemailEnabledChecker;
 import com.android.dialer.voicemailstatus.VoicemailStatusHelper;
 import java.util.ArrayList;
@@ -183,10 +184,15 @@
     mRemoveView = (RemoveView) parentView.findViewById(R.id.remove_view);
     mRemoveViewContent = parentView.findViewById(R.id.remove_view_content);
 
-    getActivity()
-        .getContentResolver()
-        .registerContentObserver(
-            VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
+    if (PermissionsUtil.hasReadVoicemailPermissions(getContext())
+        && PermissionsUtil.hasAddVoicemailPermissions(getContext())) {
+      getActivity()
+          .getContentResolver()
+          .registerContentObserver(
+              VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
+    } else {
+      LogUtil.w("ListsFragment.onCreateView", "no voicemail read/add permissions");
+    }
 
     Trace.endSection();
     Trace.endSection();
diff --git a/java/com/android/dialer/app/list/OldSpeedDialFragment.java b/java/com/android/dialer/app/list/OldSpeedDialFragment.java
index 4ae84b6..40fe745 100644
--- a/java/com/android/dialer/app/list/OldSpeedDialFragment.java
+++ b/java/com/android/dialer/app/list/OldSpeedDialFragment.java
@@ -123,7 +123,7 @@
     if (mContactTileAdapter != null) {
       mContactTileAdapter.refreshContactsPreferences();
     }
-    if (PermissionsUtil.hasContactsPermissions(getActivity())) {
+    if (PermissionsUtil.hasContactsReadPermissions(getActivity())) {
       if (getLoaderManager().getLoader(LOADER_ID_CONTACT_TILE) == null) {
         getLoaderManager().initLoader(LOADER_ID_CONTACT_TILE, null, mContactTileLoaderListener);
 
@@ -235,7 +235,7 @@
     // Use initLoader() instead of restartLoader() to refraining unnecessary reload.
     // This method call implicitly assures ContactTileLoaderListener's onLoadFinished() will
     // be called, on which we'll check if "all" contacts should be reloaded again or not.
-    if (PermissionsUtil.hasContactsPermissions(activity)) {
+    if (PermissionsUtil.hasContactsReadPermissions(activity)) {
       getLoaderManager().initLoader(LOADER_ID_CONTACT_TILE, null, mContactTileLoaderListener);
     } else {
       setEmptyViewVisibility(true);
diff --git a/java/com/android/dialer/app/list/SearchFragment.java b/java/com/android/dialer/app/list/SearchFragment.java
index 264bdf8..fcf8236 100644
--- a/java/com/android/dialer/app/list/SearchFragment.java
+++ b/java/com/android/dialer/app/list/SearchFragment.java
@@ -380,7 +380,7 @@
       return;
     }
 
-    if (PermissionsUtil.hasContactsPermissions(getActivity())) {
+    if (PermissionsUtil.hasContactsReadPermissions(getActivity())) {
       super.startLoading();
     } else if (TextUtils.isEmpty(getQueryString())) {
       // Clear out any existing call shortcuts.
diff --git a/java/com/android/dialer/app/res/values-af/strings.xml b/java/com/android/dialer/app/res/values-af/strings.xml
index 2cd6880..7eaa7cb 100644
--- a/java/com/android/dialer/app/res/values-af/strings.xml
+++ b/java/com/android/dialer/app/res/values-af/strings.xml
@@ -230,4 +230,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblokkeer nommer"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Strooipos"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is vanlyn en kan nie bereik word nie"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-am/strings.xml b/java/com/android/dialer/app/res/values-am/strings.xml
index 760099d..dd20b31 100644
--- a/java/com/android/dialer/app/res/values-am/strings.xml
+++ b/java/com/android/dialer/app/res/values-am/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"ቁጥርን አታግድ"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"አይፈለጌ መልዕክት"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ከመስመር ውጭ ነው እና ሊደረስበት አይችልም"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-ar/strings.xml b/java/com/android/dialer/app/res/values-ar/strings.xml
index 6e387b4..c24d313 100644
--- a/java/com/android/dialer/app/res/values-ar/strings.xml
+++ b/java/com/android/dialer/app/res/values-ar/strings.xml
@@ -238,4 +238,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"إلغاء حظر الرقم"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"تعليق غير مرغوب فيه"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> غير متصل ولا يمكن الوصول إليه"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-az/strings.xml b/java/com/android/dialer/app/res/values-az/strings.xml
index 9522764..70e926c 100644
--- a/java/com/android/dialer/app/res/values-az/strings.xml
+++ b/java/com/android/dialer/app/res/values-az/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Nömrəni blokdan çıxarın"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> oflayn olduğu üçün əlaqə saxlamaq mümkün deyil"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
index c046d94..7ca2e56 100644
--- a/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblokiraj broj"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Nepoželjan"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> je oflajn i ne možete da ga/je kontaktirate"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-be/strings.xml b/java/com/android/dialer/app/res/values-be/strings.xml
index 552e6ac..effc7e0 100644
--- a/java/com/android/dialer/app/res/values-be/strings.xml
+++ b/java/com/android/dialer/app/res/values-be/strings.xml
@@ -235,4 +235,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Разблакіраваць нумар"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"Карыстальнік <xliff:g id="NAME">%1$s</xliff:g> па-за сеткай і не даступны"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-bg/strings.xml b/java/com/android/dialer/app/res/values-bg/strings.xml
index 277cb63..d3d1a99 100644
--- a/java/com/android/dialer/app/res/values-bg/strings.xml
+++ b/java/com/android/dialer/app/res/values-bg/strings.xml
@@ -230,4 +230,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Отблокиране на номера"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"С <xliff:g id="NAME">%1$s</xliff:g> не може да се установи връзка, тъй като е офлайн"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-bn/strings.xml b/java/com/android/dialer/app/res/values-bn/strings.xml
index 0a55692..4b7354c 100644
--- a/java/com/android/dialer/app/res/values-bn/strings.xml
+++ b/java/com/android/dialer/app/res/values-bn/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"নম্বর অবরোধ মুক্ত করুন"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"স্প্যাম"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> এখন অফলাইনে থাকায় যোগাযোগ করা যাবে না"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-bs/strings.xml b/java/com/android/dialer/app/res/values-bs/strings.xml
index 834d296..4e02846 100644
--- a/java/com/android/dialer/app/res/values-bs/strings.xml
+++ b/java/com/android/dialer/app/res/values-bs/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblokiraj broj"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Neželjena pošta"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"Osoba <xliff:g id="NAME">%1$s</xliff:g> je van mreže i ne možete je kontaktirati"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-ca/strings.xml b/java/com/android/dialer/app/res/values-ca/strings.xml
index 6afd86b..e18256d 100644
--- a/java/com/android/dialer/app/res/values-ca/strings.xml
+++ b/java/com/android/dialer/app/res/values-ca/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloqueja el número"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Contingut brossa"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> no té connexió i no s\'hi pot contactar"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-cs/strings.xml b/java/com/android/dialer/app/res/values-cs/strings.xml
index 97f4331..bb7e3c5 100644
--- a/java/com/android/dialer/app/res/values-cs/strings.xml
+++ b/java/com/android/dialer/app/res/values-cs/strings.xml
@@ -235,4 +235,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Zrušit blokování čísla"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"Uživatel <xliff:g id="NAME">%1$s</xliff:g> je offline a není možné se s ním spojit"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-da/strings.xml b/java/com/android/dialer/app/res/values-da/strings.xml
index 7f162b9..4988176 100644
--- a/java/com/android/dialer/app/res/values-da/strings.xml
+++ b/java/com/android/dialer/app/res/values-da/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Ophæv blokering af nummer"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> er offline og kan ikke nås"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-de/strings.xml b/java/com/android/dialer/app/res/values-de/strings.xml
index eaa7986..ab12c1f 100644
--- a/java/com/android/dialer/app/res/values-de/strings.xml
+++ b/java/com/android/dialer/app/res/values-de/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Blockierung der Nummer aufheben"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ist offline und nicht erreichbar"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-el/strings.xml b/java/com/android/dialer/app/res/values-el/strings.xml
index 6996817..2a00c46 100644
--- a/java/com/android/dialer/app/res/values-el/strings.xml
+++ b/java/com/android/dialer/app/res/values-el/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Κατάργηση αποκλεισμού αριθμού"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Ανεπιθύμητα"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"Ο χρήστης <xliff:g id="NAME">%1$s</xliff:g> είναι εκτός σύνδεσης και δεν μπορείτε να έρθετε σε επικοινωνία μαζί του"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-en-rAU/strings.xml b/java/com/android/dialer/app/res/values-en-rAU/strings.xml
index 967c741..9229be6 100644
--- a/java/com/android/dialer/app/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rAU/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Unblock number"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is offline and can\'t be reached"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-en-rGB/strings.xml b/java/com/android/dialer/app/res/values-en-rGB/strings.xml
index 967c741..9229be6 100644
--- a/java/com/android/dialer/app/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rGB/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Unblock number"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is offline and can\'t be reached"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-en-rIN/strings.xml b/java/com/android/dialer/app/res/values-en-rIN/strings.xml
index 967c741..9229be6 100644
--- a/java/com/android/dialer/app/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rIN/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Unblock number"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is offline and can\'t be reached"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-es-rUS/strings.xml b/java/com/android/dialer/app/res/values-es-rUS/strings.xml
index 4a39f34..17a1b14 100644
--- a/java/com/android/dialer/app/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/app/res/values-es-rUS/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> está sin conexión y no se lo puede contactar"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-es/strings.xml b/java/com/android/dialer/app/res/values-es/strings.xml
index f3ebe5d..15c1299 100644
--- a/java/com/android/dialer/app/res/values-es/strings.xml
+++ b/java/com/android/dialer/app/res/values-es/strings.xml
@@ -230,4 +230,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> no tiene conexión y no se puede contactar"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-et/strings.xml b/java/com/android/dialer/app/res/values-et/strings.xml
index e880e3d..3dd4ebc 100644
--- a/java/com/android/dialer/app/res/values-et/strings.xml
+++ b/java/com/android/dialer/app/res/values-et/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Numbri deblokeerimine"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Rämpspost"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ei ole võrgus ja temaga ei saa ühendust"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-eu/strings.xml b/java/com/android/dialer/app/res/values-eu/strings.xml
index 079e5c7..e2701f9 100644
--- a/java/com/android/dialer/app/res/values-eu/strings.xml
+++ b/java/com/android/dialer/app/res/values-eu/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desblokeatu zenbakia"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spama"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ez dago konektatuta, eta ezin zara jarri harremanetan berarekin"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-fa/strings.xml b/java/com/android/dialer/app/res/values-fa/strings.xml
index 67f58a0..fb1fa8b 100644
--- a/java/com/android/dialer/app/res/values-fa/strings.xml
+++ b/java/com/android/dialer/app/res/values-fa/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"رفع انسداد شماره"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"هرزنامه"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> آفلاین است و در دسترس نمی‌باشد"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-fi/strings.xml b/java/com/android/dialer/app/res/values-fi/strings.xml
index 417305b..3a03c8e 100644
--- a/java/com/android/dialer/app/res/values-fi/strings.xml
+++ b/java/com/android/dialer/app/res/values-fi/strings.xml
@@ -230,4 +230,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Poista numeron esto"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Roskaposti"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> on offline-tilassa, eikä siihen saada yhteyttä."</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-fr-rCA/strings.xml b/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
index 0429a76..4610e60 100644
--- a/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
@@ -230,4 +230,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Débloquer le numéro"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Pourriel"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> est hors connexion et injoignable"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-fr/strings.xml b/java/com/android/dialer/app/res/values-fr/strings.xml
index 933acc1..e1eda72 100644
--- a/java/com/android/dialer/app/res/values-fr/strings.xml
+++ b/java/com/android/dialer/app/res/values-fr/strings.xml
@@ -230,4 +230,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Débloquer le numéro"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> est injoignable, car non connecté"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-gl/strings.xml b/java/com/android/dialer/app/res/values-gl/strings.xml
index df162bf..2a79835 100644
--- a/java/com/android/dialer/app/res/values-gl/strings.xml
+++ b/java/com/android/dialer/app/res/values-gl/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"Non se pode contactar con <xliff:g id="NAME">%1$s</xliff:g> porque está sen conexión"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-gu/strings.xml b/java/com/android/dialer/app/res/values-gu/strings.xml
index ad5cd07..940dea0 100644
--- a/java/com/android/dialer/app/res/values-gu/strings.xml
+++ b/java/com/android/dialer/app/res/values-gu/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"નંબર અનાવરોધિત કરો"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"સ્પામ"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ઑફલાઇન છે અને તેના સુધી પહોંચી શકતાં નથી"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-hi/strings.xml b/java/com/android/dialer/app/res/values-hi/strings.xml
index 320baa5..c4f135b 100644
--- a/java/com/android/dialer/app/res/values-hi/strings.xml
+++ b/java/com/android/dialer/app/res/values-hi/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"नंबर अनवरोधित करें"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"स्पैम"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ऑफ़लाइन हैं और उन तक नहीं पहुंचा जा सकता"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-hr/strings.xml b/java/com/android/dialer/app/res/values-hr/strings.xml
index ee2df54..fb96256 100644
--- a/java/com/android/dialer/app/res/values-hr/strings.xml
+++ b/java/com/android/dialer/app/res/values-hr/strings.xml
@@ -235,4 +235,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblokiranje broja"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Neželjena pošta"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> nije online i nije dostupan"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-hu/strings.xml b/java/com/android/dialer/app/res/values-hu/strings.xml
index 9660b0c..a39c584 100644
--- a/java/com/android/dialer/app/res/values-hu/strings.xml
+++ b/java/com/android/dialer/app/res/values-hu/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Szám tiltásának feloldása"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> offline, és nem érhető el."</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-hy/strings.xml b/java/com/android/dialer/app/res/values-hy/strings.xml
index 58a8e9a..362c570 100644
--- a/java/com/android/dialer/app/res/values-hy/strings.xml
+++ b/java/com/android/dialer/app/res/values-hy/strings.xml
@@ -230,4 +230,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Արգելաբացել համարը"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Լցոն"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> օգտատերը միացած չէ ցանցին և անհասանելի է"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-in/strings.xml b/java/com/android/dialer/app/res/values-in/strings.xml
index 3b9fcbe..ca7341a 100644
--- a/java/com/android/dialer/app/res/values-in/strings.xml
+++ b/java/com/android/dialer/app/res/values-in/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Bebaskan nomor"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> sedang offline dan tidak dapat dijangkau"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-is/strings.xml b/java/com/android/dialer/app/res/values-is/strings.xml
index e084712..a8a9ae1 100644
--- a/java/com/android/dialer/app/res/values-is/strings.xml
+++ b/java/com/android/dialer/app/res/values-is/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Taka númer af bannlista"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Ruslnúmer"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> er án nettengingar og ekki er hægt að ná í viðkomandi"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-it/strings.xml b/java/com/android/dialer/app/res/values-it/strings.xml
index 341d497..7fc5811 100644
--- a/java/com/android/dialer/app/res/values-it/strings.xml
+++ b/java/com/android/dialer/app/res/values-it/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Sblocca numero"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> è offline e non può essere raggiunto"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-iw/strings.xml b/java/com/android/dialer/app/res/values-iw/strings.xml
index 9b61af7..743d455 100644
--- a/java/com/android/dialer/app/res/values-iw/strings.xml
+++ b/java/com/android/dialer/app/res/values-iw/strings.xml
@@ -234,4 +234,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"בטל חסימת מספר"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"ספאם"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"לא ניתן להתקשר כי המכשיר של <xliff:g id="NAME">%1$s</xliff:g> לא מחובר כרגע"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-ja/strings.xml b/java/com/android/dialer/app/res/values-ja/strings.xml
index 22cfd48..72bc2de 100644
--- a/java/com/android/dialer/app/res/values-ja/strings.xml
+++ b/java/com/android/dialer/app/res/values-ja/strings.xml
@@ -230,4 +230,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"番号のブロックを解除"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"スパム"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> さんはオフラインのため、通話を受信できません"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-ka/strings.xml b/java/com/android/dialer/app/res/values-ka/strings.xml
index 06bc726..befdd3a 100644
--- a/java/com/android/dialer/app/res/values-ka/strings.xml
+++ b/java/com/android/dialer/app/res/values-ka/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"ნომრის განბლოკვა"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"სპამი"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ხაზგარეშეა და ვერ დაუკავშირდებით"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-kk/strings.xml b/java/com/android/dialer/app/res/values-kk/strings.xml
index 409217a..8ed6661 100644
--- a/java/com/android/dialer/app/res/values-kk/strings.xml
+++ b/java/com/android/dialer/app/res/values-kk/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Нөмірді бөгеуден шығару"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> желіден тыс және байланысу мүмкін емес"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-km/strings.xml b/java/com/android/dialer/app/res/values-km/strings.xml
index 7ebe85d..2980708 100644
--- a/java/com/android/dialer/app/res/values-km/strings.xml
+++ b/java/com/android/dialer/app/res/values-km/strings.xml
@@ -230,4 +230,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"ឈប់ទប់ស្កាត់លេខ"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"សារ​ឥតបានការ"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> មិន​នៅ​លើ​អ៊ីនធឺណិត និង​មិន​អាច​ទាក់ទង​បាន​ទេ"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-kn/strings.xml b/java/com/android/dialer/app/res/values-kn/strings.xml
index 3e70c88..ff780f9 100644
--- a/java/com/android/dialer/app/res/values-kn/strings.xml
+++ b/java/com/android/dialer/app/res/values-kn/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"ಸಂಖ್ಯೆಯನ್ನು ಅನಿರ್ಬಂಧಿಸು"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"ಸ್ಪ್ಯಾಮ್"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ಆಫ್‌ಲೈನ್ ಆಗಿದ್ದಾರೆ ಮತ್ತು ಅವರನ್ನು ತಲುಪಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-ko/strings.xml b/java/com/android/dialer/app/res/values-ko/strings.xml
index 0f6abdf..cdd0d52 100644
--- a/java/com/android/dialer/app/res/values-ko/strings.xml
+++ b/java/com/android/dialer/app/res/values-ko/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"번호 차단 해제"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"스팸"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g>님은 오프라인 상태이며 연락할 수 없습니다."</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-ky/strings.xml b/java/com/android/dialer/app/res/values-ky/strings.xml
index 4a2ccf3..0784a3e 100644
--- a/java/com/android/dialer/app/res/values-ky/strings.xml
+++ b/java/com/android/dialer/app/res/values-ky/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Номерди бөгөттөн чыгаруу"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> оффлайн режиминде болгондуктан, байланышууга болбойт"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-lo/strings.xml b/java/com/android/dialer/app/res/values-lo/strings.xml
index 3155346..d7b8f32 100644
--- a/java/com/android/dialer/app/res/values-lo/strings.xml
+++ b/java/com/android/dialer/app/res/values-lo/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"ປົດ​ບ​ລັອກ​ໝາຍ​ເລກ"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"ສະແປມ"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ອອບລາຍຢູ່ ແລະ ບໍ່ສາມາດຕິດຕໍ່ຫາໄດ້"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-lt/strings.xml b/java/com/android/dialer/app/res/values-lt/strings.xml
index 6ac7e4d..eaa11cb 100644
--- a/java/com/android/dialer/app/res/values-lt/strings.xml
+++ b/java/com/android/dialer/app/res/values-lt/strings.xml
@@ -235,4 +235,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Panaikinti numerio blokavimą"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Šlamštas"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> yra neprisijungęs (-usi) ir su juo (ja) negalima susisiekti"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-lv/strings.xml b/java/com/android/dialer/app/res/values-lv/strings.xml
index df51e60..3c73cd5 100644
--- a/java/com/android/dialer/app/res/values-lv/strings.xml
+++ b/java/com/android/dialer/app/res/values-lv/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Atbloķēt numuru"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Nevēlami zvani"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"Lietotājs <xliff:g id="NAME">%1$s</xliff:g> ir bezsaistē un nav sasniedzams"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-mk/strings.xml b/java/com/android/dialer/app/res/values-mk/strings.xml
index 1086e34..016821d 100644
--- a/java/com/android/dialer/app/res/values-mk/strings.xml
+++ b/java/com/android/dialer/app/res/values-mk/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Одблокирај го бројот"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"Контактот <xliff:g id="NAME">%1$s</xliff:g> е офлајн и недостапен"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-ml/strings.xml b/java/com/android/dialer/app/res/values-ml/strings.xml
index 7a43a2d..081a05a 100644
--- a/java/com/android/dialer/app/res/values-ml/strings.xml
+++ b/java/com/android/dialer/app/res/values-ml/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"നമ്പർ അൺബ്ലോക്കുചെയ്യുക"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"സ്‌പാം"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ഓഫ്‌ലൈനായതിനാൽ കോൾ ചെയ്യാനാവില്ല"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-mn/strings.xml b/java/com/android/dialer/app/res/values-mn/strings.xml
index 0dda88e..16f7e1a 100644
--- a/java/com/android/dialer/app/res/values-mn/strings.xml
+++ b/java/com/android/dialer/app/res/values-mn/strings.xml
@@ -230,4 +230,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Дугаар блокноос гаргах"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> офлайн, холбогдох боломжгүй байна"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-mr/strings.xml b/java/com/android/dialer/app/res/values-mr/strings.xml
index 505dae7..eb374b9 100644
--- a/java/com/android/dialer/app/res/values-mr/strings.xml
+++ b/java/com/android/dialer/app/res/values-mr/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"नंबर अनावरोधित करा"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"स्पॅम"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ऑफलाइन आहे आणि त्यांच्याशी संपर्क साधू शकत नाही"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-ms/strings.xml b/java/com/android/dialer/app/res/values-ms/strings.xml
index 74d9b05..c471ce9 100644
--- a/java/com/android/dialer/app/res/values-ms/strings.xml
+++ b/java/com/android/dialer/app/res/values-ms/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Nyahsekat nombor"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> di luar talian dan tidak dapat dihubungi"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-my/strings.xml b/java/com/android/dialer/app/res/values-my/strings.xml
index 88f5bd3..dd81dee 100644
--- a/java/com/android/dialer/app/res/values-my/strings.xml
+++ b/java/com/android/dialer/app/res/values-my/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"နံပါတ်ကို ဖွင့်မည်"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"စပမ်း"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> သည် အော့ဖ်လိုင်းဖြစ်နေသောကြောင့် ဆက်သွယ်၍ မရနိုင်ပါ"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-nb/strings.xml b/java/com/android/dialer/app/res/values-nb/strings.xml
index 7a8528e..8f83c94 100644
--- a/java/com/android/dialer/app/res/values-nb/strings.xml
+++ b/java/com/android/dialer/app/res/values-nb/strings.xml
@@ -230,4 +230,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Opphev blokkeringen av nummeret"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Nettsøppel"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> er frakoblet og kan ikke nås"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-ne/strings.xml b/java/com/android/dialer/app/res/values-ne/strings.xml
index 8595062..f952463 100644
--- a/java/com/android/dialer/app/res/values-ne/strings.xml
+++ b/java/com/android/dialer/app/res/values-ne/strings.xml
@@ -230,4 +230,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"नम्बरमाथिको रोक हटाउनुहोस्"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"स्प्याम"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> अफलाइन हुनुहुन्छ र वहाँलाई भेट्न सकिँदैन"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-nl/strings.xml b/java/com/android/dialer/app/res/values-nl/strings.xml
index 54d784b..4984368 100644
--- a/java/com/android/dialer/app/res/values-nl/strings.xml
+++ b/java/com/android/dialer/app/res/values-nl/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Blokkeren van nummer opheffen"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is offline en kan niet worden bereikt"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-no/strings.xml b/java/com/android/dialer/app/res/values-no/strings.xml
index 7a8528e..8f83c94 100644
--- a/java/com/android/dialer/app/res/values-no/strings.xml
+++ b/java/com/android/dialer/app/res/values-no/strings.xml
@@ -230,4 +230,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Opphev blokkeringen av nummeret"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Nettsøppel"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> er frakoblet og kan ikke nås"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-pa/strings.xml b/java/com/android/dialer/app/res/values-pa/strings.xml
index 880eecc..88e3aa7 100644
--- a/java/com/android/dialer/app/res/values-pa/strings.xml
+++ b/java/com/android/dialer/app/res/values-pa/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"ਨੰਬਰ ਨੂੰ ਅਨਬਲੌਕ ਕਰੋ"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"ਸਪੈਮ"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ਔਫਲਾਈਨ ਹੈ ਅਤੇ ਉਸ \'ਤੇ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-pl/strings.xml b/java/com/android/dialer/app/res/values-pl/strings.xml
index b36d096..f408ed3 100644
--- a/java/com/android/dialer/app/res/values-pl/strings.xml
+++ b/java/com/android/dialer/app/res/values-pl/strings.xml
@@ -235,4 +235,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Odblokuj numer"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"Użytkownik <xliff:g id="NAME">%1$s</xliff:g> jest offline i nie można się z nim skontaktować"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-pt-rBR/strings.xml b/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
index 9e0eab8..0fc1da7 100644
--- a/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> está off-line e não é possível entrar em contato"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-pt-rPT/strings.xml b/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
index 669d660..f12e254 100644
--- a/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> está offline e não pode ser contactado"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-pt/strings.xml b/java/com/android/dialer/app/res/values-pt/strings.xml
index 9e0eab8..0fc1da7 100644
--- a/java/com/android/dialer/app/res/values-pt/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> está off-line e não é possível entrar em contato"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-ro/strings.xml b/java/com/android/dialer/app/res/values-ro/strings.xml
index 007199d..d07dbed 100644
--- a/java/com/android/dialer/app/res/values-ro/strings.xml
+++ b/java/com/android/dialer/app/res/values-ro/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblocați numărul"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> este offline și nu poate fi contactat(ă)"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-ru/strings.xml b/java/com/android/dialer/app/res/values-ru/strings.xml
index 6744592..e98622d 100644
--- a/java/com/android/dialer/app/res/values-ru/strings.xml
+++ b/java/com/android/dialer/app/res/values-ru/strings.xml
@@ -235,4 +235,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Разблокировать номер"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> сейчас офлайн и не ответит на вызов"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-si/strings.xml b/java/com/android/dialer/app/res/values-si/strings.xml
index 4340c0e..c4ae173 100644
--- a/java/com/android/dialer/app/res/values-si/strings.xml
+++ b/java/com/android/dialer/app/res/values-si/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"අංකය අවහිර නොකරන්න"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"අයාචිත තැපෑල"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> නොබැඳි අතර ළඟා වීමට නොහැකිය"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-sk/strings.xml b/java/com/android/dialer/app/res/values-sk/strings.xml
index 25b8d74..b5f4269 100644
--- a/java/com/android/dialer/app/res/values-sk/strings.xml
+++ b/java/com/android/dialer/app/res/values-sk/strings.xml
@@ -235,4 +235,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Zrušiť blokovanie čísla"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> je offline a nedá sa zastihnúť"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-sl/strings.xml b/java/com/android/dialer/app/res/values-sl/strings.xml
index d5a22d5..51ac390 100644
--- a/java/com/android/dialer/app/res/values-sl/strings.xml
+++ b/java/com/android/dialer/app/res/values-sl/strings.xml
@@ -235,4 +235,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Odblokiranje telefonske številke"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Vsiljena pošta"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"Oseba <xliff:g id="NAME">%1$s</xliff:g> nima vzpostavljene povezave in ni dosegljiva"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-sq/strings.xml b/java/com/android/dialer/app/res/values-sq/strings.xml
index cfa8443..8bc3e85 100644
--- a/java/com/android/dialer/app/res/values-sq/strings.xml
+++ b/java/com/android/dialer/app/res/values-sq/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Zhblloko numrin"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"E bezdisshme"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> është jashtë linje dhe nuk mund të kontaktohet"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-sr/strings.xml b/java/com/android/dialer/app/res/values-sr/strings.xml
index d8222da..e7f7f91 100644
--- a/java/com/android/dialer/app/res/values-sr/strings.xml
+++ b/java/com/android/dialer/app/res/values-sr/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Деблокирај број"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Непожељан"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> је офлајн и не можете да га/је контактирате"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-sv/strings.xml b/java/com/android/dialer/app/res/values-sv/strings.xml
index 47b2151..36616ce 100644
--- a/java/com/android/dialer/app/res/values-sv/strings.xml
+++ b/java/com/android/dialer/app/res/values-sv/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Häv blockeringen av numret"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> är offline och går inte att nå"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-sw/strings.xml b/java/com/android/dialer/app/res/values-sw/strings.xml
index 1516b9a..fdbdd7d 100644
--- a/java/com/android/dialer/app/res/values-sw/strings.xml
+++ b/java/com/android/dialer/app/res/values-sw/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Ondolea nambari kizuizi"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Taka"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> hayuko mtandaoni na hapatikani"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-ta/strings.xml b/java/com/android/dialer/app/res/values-ta/strings.xml
index 5a80a2b..f7e1d19 100644
--- a/java/com/android/dialer/app/res/values-ta/strings.xml
+++ b/java/com/android/dialer/app/res/values-ta/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"எண்ணை அனுமதி"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"ஸ்பேம்"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ஆஃப்லைனில் உள்ளதால், தொடர்புகொள்ள முடியாது"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-te/strings.xml b/java/com/android/dialer/app/res/values-te/strings.xml
index aea9625..babfb9a 100644
--- a/java/com/android/dialer/app/res/values-te/strings.xml
+++ b/java/com/android/dialer/app/res/values-te/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"నంబర్‌ను అన్‌బ్లాక్ చేయి"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"స్పామ్"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ఆఫ్‌లైన్‌లో ఉన్నందున వారిని చేరుకోవడం సాధ్యపడదు"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-th/strings.xml b/java/com/android/dialer/app/res/values-th/strings.xml
index cecf217..4c2fd37 100644
--- a/java/com/android/dialer/app/res/values-th/strings.xml
+++ b/java/com/android/dialer/app/res/values-th/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"เลิกบล็อกหมายเลข"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"สแปม"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ออฟไลน์อยู่และไม่สามารถติดต่อได้"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-tl/strings.xml b/java/com/android/dialer/app/res/values-tl/strings.xml
index d7408cb..6afb11c 100644
--- a/java/com/android/dialer/app/res/values-tl/strings.xml
+++ b/java/com/android/dialer/app/res/values-tl/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Alisin sa pagkaka-block ang numero"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"Offline si <xliff:g id="NAME">%1$s</xliff:g> at hindi makontak"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-tr/strings.xml b/java/com/android/dialer/app/res/values-tr/strings.xml
index 3c92206..8b30d4b 100644
--- a/java/com/android/dialer/app/res/values-tr/strings.xml
+++ b/java/com/android/dialer/app/res/values-tr/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Numaranın engellemesini kaldır"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> çevrimdışı olduğundan ulaşılamıyor"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-uk/strings.xml b/java/com/android/dialer/app/res/values-uk/strings.xml
index 5a1dfcc..f1c5b3f 100644
--- a/java/com/android/dialer/app/res/values-uk/strings.xml
+++ b/java/com/android/dialer/app/res/values-uk/strings.xml
@@ -235,4 +235,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Розблокувати номер"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> не в мережі, неможливо встановити зв’язок"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-ur/strings.xml b/java/com/android/dialer/app/res/values-ur/strings.xml
index eec7db0..b212812 100644
--- a/java/com/android/dialer/app/res/values-ur/strings.xml
+++ b/java/com/android/dialer/app/res/values-ur/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"نمبر غیر مسدود کریں"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"سپام"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> آف لائن ہے اور اس تک پہنچا نہیں جا سکتا"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-uz/strings.xml b/java/com/android/dialer/app/res/values-uz/strings.xml
index 2a2b7af..e52d2bd 100644
--- a/java/com/android/dialer/app/res/values-uz/strings.xml
+++ b/java/com/android/dialer/app/res/values-uz/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Raqamni blokdan chiqarish"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> hozir oflayn va u bilan bog‘lanishning imkoni yo‘q"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-vi/strings.xml b/java/com/android/dialer/app/res/values-vi/strings.xml
index 9def34a..66b3468 100644
--- a/java/com/android/dialer/app/res/values-vi/strings.xml
+++ b/java/com/android/dialer/app/res/values-vi/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Bỏ chặn số"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ngoại tuyến và không liên hệ được"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-zh-rCN/strings.xml b/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
index c1b8029..c64234e 100644
--- a/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"取消屏蔽号码"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"骚扰电话号码"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g>不在线,无法接通"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
index 95b72f2..693e56c 100644
--- a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
@@ -230,4 +230,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"解除封鎖號碼"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"垃圾號碼"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g>已離線,無法取得聯繫"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
index c846980..3675d3f 100644
--- a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
@@ -233,4 +233,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"解除封鎖號碼"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"騷擾/廣告電話"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g>已離線,無法接聽來電"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values-zu/strings.xml b/java/com/android/dialer/app/res/values-zu/strings.xml
index 07aa68d..0d9957d 100644
--- a/java/com/android/dialer/app/res/values-zu/strings.xml
+++ b/java/com/android/dialer/app/res/values-zu/strings.xml
@@ -231,4 +231,6 @@
     <string name="call_log_action_unblock_number" msgid="6100117033288448758">"Vulela inombolo"</string>
     <string name="spam_number_call_log_label" msgid="2678431398326811131">"Ugaxekile"</string>
     <string name="call_composer_connection_failed" msgid="6776461585447831242">"U-<xliff:g id="NAME">%1$s</xliff:g> akaxhunyiwe kwi-inthanethi futhi akakwazi ukufinyelelwa"</string>
+    <!-- no translation found for about_phone_label (582991354677973731) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/app/res/values/strings.xml b/java/com/android/dialer/app/res/values/strings.xml
index 174bbe1..9e1fdeb 100644
--- a/java/com/android/dialer/app/res/values/strings.xml
+++ b/java/com/android/dialer/app/res/values/strings.xml
@@ -897,4 +897,7 @@
   <!-- Shown as a message that notifies the user enriched calling isn't working -->
   <string name="call_composer_connection_failed"><xliff:g id="name">%1$s</xliff:g> is offline and can\'t be reached</string>
 
+  <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
+  <string name="about_phone_label">About</string>
+
 </resources>
diff --git a/java/com/android/dialer/app/settings/DialerSettingsActivity.java b/java/com/android/dialer/app/settings/DialerSettingsActivity.java
index fae5ff3..f1c270c 100644
--- a/java/com/android/dialer/app/settings/DialerSettingsActivity.java
+++ b/java/com/android/dialer/app/settings/DialerSettingsActivity.java
@@ -32,6 +32,7 @@
 import android.view.MenuItem;
 import android.widget.Toast;
 import com.android.contacts.common.compat.TelephonyManagerCompat;
+import com.android.dialer.about.AboutPhoneFragment;
 import com.android.dialer.app.R;
 import com.android.dialer.blocking.FilteredNumberCompat;
 import com.android.dialer.common.LogUtil;
@@ -136,6 +137,11 @@
       accessibilitySettingsHeader.intent = accessibilitySettingsIntent;
       target.add(accessibilitySettingsHeader);
     }
+
+    Header aboutPhoneHeader = new Header();
+    aboutPhoneHeader.titleRes = R.string.about_phone_label;
+    aboutPhoneHeader.fragment = AboutPhoneFragment.class.getName();
+    target.add(aboutPhoneHeader);
   }
 
   private void addVoicemailSettings(List<Header> target, boolean isPrimaryUser) {
diff --git a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
index a7ef4f4..9d07ec5 100644
--- a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
+++ b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
@@ -52,39 +52,32 @@
     PhoneAccountHandle phoneAccountHandle =
         Assert.isNotNull(intent.getParcelableExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE));
 
-    // Carrier might not send voicemail count. Missing extra means there are unknown numbers of
-    // voicemails (One or more). Treat it as 1 so the generic version will be shown. ("Voicemail"
-    // instead of "X voicemails")
-    int count = intent.getIntExtra(TelephonyManager.EXTRA_NOTIFICATION_COUNT, 1);
+    int count = intent.getIntExtra(TelephonyManager.EXTRA_NOTIFICATION_COUNT, -1);
 
-    // Need credential encrypted storage to access preferences.
-    if (UserManagerCompat.isUserUnlocked(context)) {
-      PerAccountSharedPreferences preferences =
-          new PerAccountSharedPreferences(
-              context, phoneAccountHandle, PreferenceManager.getDefaultSharedPreferences(context));
-      // Carriers may send multiple notifications for the same voicemail.
-      if (count != 0 && count == preferences.getInt(LEGACY_VOICEMAIL_COUNT, -1)) {
-        LogUtil.i(
-            "LegacyVoicemailNotificationReceiver.onReceive",
-            "voicemail count hasn't changed, ignoring");
-        return;
-      }
-      preferences.edit().putInt(LEGACY_VOICEMAIL_COUNT, count).apply();
-    } else {
+    if (!hasVoicemailCountChanged(context, phoneAccountHandle, count)) {
       LogUtil.i(
           "LegacyVoicemailNotificationReceiver.onReceive",
-          "User locked, bypassing voicemail count check");
+          "voicemail count hasn't changed, ignoring");
+      return;
+    }
+
+    if (count == -1) {
+      // Carrier might not send voicemail count. Missing extra means there are unknown numbers of
+      // voicemails (One or more). Treat it as 1 so the generic version will be shown. ("Voicemail"
+      // instead of "X voicemails")
+      count = 1;
     }
 
     if (count == 0) {
       LogUtil.i("LegacyVoicemailNotificationReceiver.onReceive", "clearing notification");
-      DefaultVoicemailNotifier.getInstance(context).cancelLegacyNotification();
+      new DefaultVoicemailNotifier(context).cancelLegacyNotification();
       return;
     }
 
-    if (VoicemailComponent.get(context)
-        .getVoicemailClient()
-        .isActivated(context, phoneAccountHandle)) {
+    if (UserManagerCompat.isUserUnlocked(context)
+        && VoicemailComponent.get(context)
+            .getVoicemailClient()
+            .isActivated(context, phoneAccountHandle)) {
       LogUtil.i(
           "LegacyVoicemailNotificationReceiver.onReceive",
           "visual voicemail is activated, ignoring notification");
@@ -98,7 +91,7 @@
         intent.getParcelableExtra(TelephonyManager.EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT);
 
     LogUtil.i("LegacyVoicemailNotificationReceiver.onReceive", "sending notification");
-    DefaultVoicemailNotifier.getInstance(context)
+    new DefaultVoicemailNotifier(context)
         .notifyLegacyVoicemail(
             phoneAccountHandle,
             count,
@@ -106,4 +99,30 @@
             callVoicemailIntent,
             voicemailSettingIntent);
   }
+
+  private static boolean hasVoicemailCountChanged(
+      Context context, PhoneAccountHandle phoneAccountHandle, int newCount) {
+    // Need credential encrypted storage to access preferences.
+    if (!UserManagerCompat.isUserUnlocked(context)) {
+      LogUtil.i(
+          "LegacyVoicemailNotificationReceiver.onReceive",
+          "User locked, bypassing voicemail count check");
+      return true;
+    }
+
+    if (newCount == -1) {
+      // Carrier does not report voicemail count
+      return true;
+    }
+
+    PerAccountSharedPreferences preferences =
+        new PerAccountSharedPreferences(
+            context, phoneAccountHandle, PreferenceManager.getDefaultSharedPreferences(context));
+    // Carriers may send multiple notifications for the same voicemail.
+    if (newCount != 0 && newCount == preferences.getInt(LEGACY_VOICEMAIL_COUNT, -1)) {
+      return false;
+    }
+    preferences.edit().putInt(LEGACY_VOICEMAIL_COUNT, newCount).apply();
+    return true;
+  }
 }
diff --git a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
index 524873f..ea48c83 100644
--- a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
+++ b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
@@ -57,6 +57,7 @@
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.phonenumbercache.CallLogQuery;
+import com.android.dialer.util.PermissionsUtil;
 import com.google.common.io.ByteStreams;
 import java.io.File;
 import java.io.IOException;
@@ -1051,7 +1052,9 @@
       mFetchResultHandler = handler;
       mVoicemailUri = uri;
       if (mContext != null) {
-        mContext.getContentResolver().registerContentObserver(mVoicemailUri, false, this);
+        if (PermissionsUtil.hasReadVoicemailPermissions(mContext)) {
+          mContext.getContentResolver().registerContentObserver(mVoicemailUri, false, this);
+        }
         mFetchResultHandler.postDelayed(this, FETCH_CONTENT_TIMEOUT_MS);
       }
     }
diff --git a/java/com/android/dialer/blocking/BlockedNumbersAutoMigrator.java b/java/com/android/dialer/blocking/BlockedNumbersAutoMigrator.java
index 3cc4220..6e9fe13 100644
--- a/java/com/android/dialer/blocking/BlockedNumbersAutoMigrator.java
+++ b/java/com/android/dialer/blocking/BlockedNumbersAutoMigrator.java
@@ -21,6 +21,7 @@
 import android.preference.PreferenceManager;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.support.v4.os.UserManagerCompat;
 import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler.OnHasBlockedNumbersListener;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
@@ -100,6 +101,10 @@
     @Nullable
     @Override
     public Boolean doInBackground(@Nullable Void input) {
+      if (!UserManagerCompat.isUserUnlocked(appContext)) {
+        LogUtil.i("BlockedNumbersAutoMigrator", "not attempting auto-migrate: device is locked");
+        return false;
+      }
       SharedPreferences sharedPreferences =
           PreferenceManager.getDefaultSharedPreferences(appContext);
 
diff --git a/java/com/android/dialer/blocking/FilteredNumberAsyncQueryHandler.java b/java/com/android/dialer/blocking/FilteredNumberAsyncQueryHandler.java
index 12a2086..fa74850 100644
--- a/java/com/android/dialer/blocking/FilteredNumberAsyncQueryHandler.java
+++ b/java/com/android/dialer/blocking/FilteredNumberAsyncQueryHandler.java
@@ -137,14 +137,6 @@
       return;
     }
 
-    String e164Number = PhoneNumberUtils.formatNumberToE164(number, countryIso);
-    String formattedNumber = FilteredNumbersUtil.getBlockableNumber(context, e164Number, number);
-    if (TextUtils.isEmpty(formattedNumber)) {
-      listener.onCheckComplete(INVALID_ID);
-      blockedNumberCache.put(number, INVALID_ID);
-      return;
-    }
-
     if (!UserManagerCompat.isUserUnlocked(context)) {
       LogUtil.i(
           "FilteredNumberAsyncQueryHandler.isBlockedNumber",
@@ -153,6 +145,14 @@
       return;
     }
 
+    String e164Number = PhoneNumberUtils.formatNumberToE164(number, countryIso);
+    String formattedNumber = FilteredNumbersUtil.getBlockableNumber(context, e164Number, number);
+    if (TextUtils.isEmpty(formattedNumber)) {
+      listener.onCheckComplete(INVALID_ID);
+      blockedNumberCache.put(number, INVALID_ID);
+      return;
+    }
+
     startQuery(
         NO_TOKEN,
         new Listener() {
diff --git a/java/com/android/dialer/blocking/FilteredNumbersUtil.java b/java/com/android/dialer/blocking/FilteredNumbersUtil.java
index a95e8d7..3c001a2 100644
--- a/java/com/android/dialer/blocking/FilteredNumbersUtil.java
+++ b/java/com/android/dialer/blocking/FilteredNumbersUtil.java
@@ -37,6 +37,7 @@
 import com.android.dialer.logging.Logger;
 import com.android.dialer.notification.NotificationChannelManager;
 import com.android.dialer.notification.NotificationChannelManager.Channel;
+import com.android.dialer.util.DialerUtils;
 import com.android.dialer.util.PermissionsUtil;
 
 /** Utility to help with tasks related to filtered numbers. */
@@ -72,7 +73,7 @@
         new AsyncTask<Object, Void, Boolean>() {
           @Override
           public Boolean doInBackground(Object... params) {
-            if (context == null || !PermissionsUtil.hasContactsPermissions(context)) {
+            if (context == null || !PermissionsUtil.hasContactsReadPermissions(context)) {
               return false;
             }
 
@@ -186,7 +187,7 @@
   }
 
   public static long getLastEmergencyCallTimeMillis(Context context) {
-    return PreferenceManager.getDefaultSharedPreferences(context)
+    return DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context)
         .getLong(LAST_EMERGENCY_CALL_MS_PREF_KEY, 0);
   }
 
diff --git a/java/com/android/dialer/calldetails/res/layout/contact_container.xml b/java/com/android/dialer/calldetails/res/layout/contact_container.xml
index daf465b..bb89b36 100644
--- a/java/com/android/dialer/calldetails/res/layout/contact_container.xml
+++ b/java/com/android/dialer/calldetails/res/layout/contact_container.xml
@@ -47,6 +47,8 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginStart="@dimen/photo_text_margin"
+        android:ellipsize="end"
+        android:maxLines="1"
         style="@style/PrimaryText"/>
 
     <TextView
@@ -68,4 +70,4 @@
       android:scaleType="center"
       android:src="@drawable/quantum_ic_call_white_24"
       android:tint="@color/secondary_text_color"/>
-</RelativeLayout>
\ No newline at end of file
+</RelativeLayout>
diff --git a/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java b/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
index 241be5d..355940f 100644
--- a/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
@@ -54,5 +54,7 @@
   @MainThread
   @Override
   public void registerContentObservers(
-      Context appContext, ContentObserverCallbacks contentObserverCallbacks) {}
+      Context appContext, ContentObserverCallbacks contentObserverCallbacks) {
+    // TODO: Guard against missing permissions during callback registration.
+  }
 }
diff --git a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
index 1cc51ee..ea6663f 100644
--- a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
@@ -29,6 +29,7 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.ThreadUtil;
+import com.android.dialer.util.PermissionsUtil;
 import javax.inject.Inject;
 
 /**
@@ -46,6 +47,11 @@
       Context appContext, ContentObserverCallbacks contentObserverCallbacks) {
     Assert.isMainThread();
 
+    if (!PermissionsUtil.hasCallLogReadPermissions(appContext)) {
+      LogUtil.i("SystemCallLogDataSource.registerContentObservers", "no call log permissions");
+      return;
+    }
+
     appContext
         .getContentResolver()
         .registerContentObserver(
diff --git a/java/com/android/dialer/common/ConfigProviderBindings.java b/java/com/android/dialer/common/ConfigProviderBindings.java
index 92e6cc3..9f045ad 100644
--- a/java/com/android/dialer/common/ConfigProviderBindings.java
+++ b/java/com/android/dialer/common/ConfigProviderBindings.java
@@ -20,17 +20,25 @@
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.annotation.VisibleForTesting;
+import android.support.v4.os.UserManagerCompat;
 
 /** Accessor for getting a {@link ConfigProvider}. */
 public class ConfigProviderBindings {
 
   private static ConfigProvider configProvider;
+  private static ConfigProvider configProviderStub;
 
   public static ConfigProvider get(@NonNull Context context) {
     Assert.isNotNull(context);
     if (configProvider != null) {
       return configProvider;
     }
+    if (!UserManagerCompat.isUserUnlocked(context)) {
+      if (configProviderStub == null) {
+        configProviderStub = new ConfigProviderStub();
+      }
+      return configProviderStub;
+    }
 
     Context application = context.getApplicationContext();
     if (application instanceof ConfigProviderFactory) {
diff --git a/java/com/android/dialer/constants/ScheduledJobIds.java b/java/com/android/dialer/constants/ScheduledJobIds.java
index 8f7a18e..2fed4ef 100644
--- a/java/com/android/dialer/constants/ScheduledJobIds.java
+++ b/java/com/android/dialer/constants/ScheduledJobIds.java
@@ -31,6 +31,11 @@
 
   public static final int VVM_TASK_SCHEDULER_JOB = 200;
   public static final int VVM_STATUS_CHECK_JOB = 201;
+  public static final int VVM_DEVICE_PROVISIONED_JOB = 202;
 
   public static final int VOIP_REGISTRATION = 300;
+
+  // Job Ids from 10_000 to 10_100 should be reserved for proto upload jobs.
+  public static final int PROTO_UPLOAD_JOB_MIN_ID = 10_000;
+  public static final int PROTO_UPLOAD_JOB_MAX_ID = 10_100;
 }
diff --git a/java/com/android/dialer/contactsfragment/ContactsFragment.java b/java/com/android/dialer/contactsfragment/ContactsFragment.java
index 1822060..ea662fc 100644
--- a/java/com/android/dialer/contactsfragment/ContactsFragment.java
+++ b/java/com/android/dialer/contactsfragment/ContactsFragment.java
@@ -29,6 +29,7 @@
 import android.view.View.OnScrollChangeListener;
 import android.view.ViewGroup;
 import android.widget.TextView;
+import com.android.dialer.util.PermissionsUtil;
 
 /** Fragment containing a list of all contacts. */
 public class ContactsFragment extends Fragment
@@ -52,6 +53,11 @@
     recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
     recyclerView.setLayoutManager(manager);
     getLoaderManager().initLoader(0, null, this);
+
+    if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
+      getLoaderManager().initLoader(0, null, this);
+    }
+
     return view;
   }
 
diff --git a/java/com/android/dialer/database/DialerDatabaseHelper.java b/java/com/android/dialer/database/DialerDatabaseHelper.java
index 7b6033b..3488142 100644
--- a/java/com/android/dialer/database/DialerDatabaseHelper.java
+++ b/java/com/android/dialer/database/DialerDatabaseHelper.java
@@ -333,7 +333,7 @@
 
   /** Starts the database upgrade process in the background. */
   public void startSmartDialUpdateThread() {
-    if (PermissionsUtil.hasContactsPermissions(mContext)) {
+    if (PermissionsUtil.hasContactsReadPermissions(mContext)) {
       new SmartDialUpdateAsyncTask().execute();
     }
   }
diff --git a/java/com/android/dialer/logging/dialer_impression.proto b/java/com/android/dialer/logging/dialer_impression.proto
index c3c160a..5416146 100644
--- a/java/com/android/dialer/logging/dialer_impression.proto
+++ b/java/com/android/dialer/logging/dialer_impression.proto
@@ -360,11 +360,16 @@
     EMERGENCY_GOT_MAP = 1172;
     EMERGENCY_LAUNCHED_MAP = 1173;
 
-    VIDEO_CALL_UPGRADE_REQUESTED = 1174;
-    VIDEO_CALL_REQUEST_ACCEPTED = 1175;
-    VIDEO_CALL_REQUEST_ACCEPTED_AS_AUDIO = 1176;
-    VIDEO_CALL_REQUEST_DECLINED = 1177;
-    VIDEO_CALL_REQUEST_RECEIVED = 1178;
+    VIDEO_CALL_UPGRADE_REQUESTED = 1174
+        ;
+    VIDEO_CALL_REQUEST_ACCEPTED = 1175
+        ;
+    VIDEO_CALL_REQUEST_ACCEPTED_AS_AUDIO = 1176
+        ;
+    VIDEO_CALL_REQUEST_DECLINED = 1177
+        ;
+    VIDEO_CALL_REQUEST_RECEIVED = 1178
+        ;
 
     RCS_VIDEO_SHARE_UPGRADE_REQUESTED = 1179;
     RCS_VIDEO_SHARE_REQUEST_ACCEPTED = 1180;
diff --git a/java/com/android/dialer/notification/NotificationChannelManager.java b/java/com/android/dialer/notification/NotificationChannelManager.java
index ef0f5f1..599e5ca 100644
--- a/java/com/android/dialer/notification/NotificationChannelManager.java
+++ b/java/com/android/dialer/notification/NotificationChannelManager.java
@@ -340,8 +340,10 @@
     NotificationChannel channel = new NotificationChannel(channelId, name, importance);
     channel.setShowBadge(canShowBadge);
     if (sound != null) {
+      // silentRingtone acts as a sentinel value to indicate that setSound should still be called,
+      // but with a null value to indicate no sound.
       channel.setSound(
-          sound,
+          sound.equals(silentRingtone) ? null : sound,
           new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_NOTIFICATION).build());
     }
     channel.enableLights(lights);
diff --git a/java/com/android/dialer/oem/CequintCallerIdManager.java b/java/com/android/dialer/oem/CequintCallerIdManager.java
index 983be6c..095ee4e 100644
--- a/java/com/android/dialer/oem/CequintCallerIdManager.java
+++ b/java/com/android/dialer/oem/CequintCallerIdManager.java
@@ -31,6 +31,7 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.util.PermissionsUtil;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -285,6 +286,11 @@
   }
 
   private static synchronized void registerContentObserver(Context context) {
+    if (!PermissionsUtil.hasCequintPermissions(context)) {
+      LogUtil.i("CequintCallerIdManager.registerContentObserver", "no cequint permissions");
+      return;
+    }
+
     if (hasRegisteredContentObserver) {
       return;
     }
diff --git a/java/com/android/dialer/persistentlog/PersistentLogFileHandler.java b/java/com/android/dialer/persistentlog/PersistentLogFileHandler.java
index 4ba5a72..5c7a28c 100644
--- a/java/com/android/dialer/persistentlog/PersistentLogFileHandler.java
+++ b/java/com/android/dialer/persistentlog/PersistentLogFileHandler.java
@@ -26,6 +26,7 @@
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.annotation.WorkerThread;
+import android.support.v4.os.UserManagerCompat;
 import java.io.ByteArrayInputStream;
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
@@ -65,6 +66,7 @@
   private SharedPreferences sharedPreferences;
 
   private File outputFile;
+  private Context context;
 
   @MainThread
   PersistentLogFileHandler(String subfolder, int fileSizeLimit, int fileCountLimit) {
@@ -76,8 +78,18 @@
   /** Must be called right after the logger thread is created. */
   @WorkerThread
   void initialize(Context context) {
+    this.context = context;
     logDirectory = new File(new File(context.getCacheDir(), LOG_DIRECTORY), subfolder);
-    sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+    initializeSharedPreference(context);
+  }
+
+  @WorkerThread
+  private boolean initializeSharedPreference(Context context) {
+    if (sharedPreferences == null && UserManagerCompat.isUserUnlocked(context)) {
+      sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+      return true;
+    }
+    return sharedPreferences != null;
   }
 
   /**
@@ -117,10 +129,10 @@
     return byteBuffer.array();
   }
 
-  private static final int getTotalSize(File[] files) {
+  private static int getTotalSize(File[] files) {
     int sum = 0;
     for (File file : files) {
-      sum += file.length();
+      sum += (int) file.length();
     }
     return sum;
   }
@@ -195,7 +207,11 @@
   }
 
   @WorkerThread
-  private int getAndIncrementNextFileIndex() {
+  private int getAndIncrementNextFileIndex() throws IOException {
+    if (!initializeSharedPreference(context)) {
+      throw new IOException("Shared preference is not available");
+    }
+
     int index = sharedPreferences.getInt(getNextFileKey(), 0);
     sharedPreferences.edit().putInt(getNextFileKey(), index + 1).commit();
     return index;
diff --git a/java/com/android/dialer/persistentlog/PersistentLogger.java b/java/com/android/dialer/persistentlog/PersistentLogger.java
index 049eb96..cf43b8c 100644
--- a/java/com/android/dialer/persistentlog/PersistentLogger.java
+++ b/java/com/android/dialer/persistentlog/PersistentLogger.java
@@ -23,6 +23,7 @@
 import android.support.annotation.NonNull;
 import android.support.annotation.VisibleForTesting;
 import android.support.annotation.WorkerThread;
+import android.support.v4.os.UserManagerCompat;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import java.io.IOException;
@@ -79,6 +80,9 @@
                 loggerThreadHandler.removeMessages(MESSAGE_FLUSH);
                 List<byte[]> messages = new ArrayList<>();
                 messageQueue.drainTo(messages);
+                if (!UserManagerCompat.isUserUnlocked(context)) {
+                  return true;
+                }
                 try {
                   fileHandler.writeLogs(messages);
                 } catch (IOException e) {
diff --git a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
index a9a5edc..bd4ba97 100644
--- a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
+++ b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
@@ -327,7 +327,7 @@
     if (uri == null) {
       return null;
     }
-    if (!PermissionsUtil.hasContactsPermissions(mContext)) {
+    if (!PermissionsUtil.hasContactsReadPermissions(mContext)) {
       return ContactInfo.EMPTY;
     }
 
diff --git a/java/com/android/dialer/theme/res/values-af/strings.xml b/java/com/android/dialer/theme/res/values-af/strings.xml
index 6c496ce..3e92ef9 100644
--- a/java/com/android/dialer/theme/res/values-af/strings.xml
+++ b/java/com/android/dialer/theme/res/values-af/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Onbekend"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefoonhokkie"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Foon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-am/strings.xml b/java/com/android/dialer/theme/res/values-am/strings.xml
index a3ac818..b8a5b14 100644
--- a/java/com/android/dialer/theme/res/values-am/strings.xml
+++ b/java/com/android/dialer/theme/res/values-am/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"ያልታወቀ"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"የሕዝብ ስልክ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ስልክ"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ar/strings.xml b/java/com/android/dialer/theme/res/values-ar/strings.xml
index e4ac049..b1fa77a 100644
--- a/java/com/android/dialer/theme/res/values-ar/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ar/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"غير معروف"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"هاتف يعمل بالعملة"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"الهاتف"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-az/strings.xml b/java/com/android/dialer/theme/res/values-az/strings.xml
index 2335cf0..492fa2c 100644
--- a/java/com/android/dialer/theme/res/values-az/strings.xml
+++ b/java/com/android/dialer/theme/res/values-az/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Naməlum"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Taksofon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
index bd719ec..adf1333 100644
--- a/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Nepoznato"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefonska govornica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-be/strings.xml b/java/com/android/dialer/theme/res/values-be/strings.xml
index 585c571..a86bfbb 100644
--- a/java/com/android/dialer/theme/res/values-be/strings.xml
+++ b/java/com/android/dialer/theme/res/values-be/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Невядомы"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Таксафон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Тэлефон"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-bg/strings.xml b/java/com/android/dialer/theme/res/values-bg/strings.xml
index 00e8892..68aa1d4 100644
--- a/java/com/android/dialer/theme/res/values-bg/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bg/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Неизвестен номер"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Обществен телефон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-bn/strings.xml b/java/com/android/dialer/theme/res/values-bn/strings.xml
index 25b5d48..90fce33 100644
--- a/java/com/android/dialer/theme/res/values-bn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bn/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"অজানা"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"পে ফোন"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ফোন"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-bs/strings.xml b/java/com/android/dialer/theme/res/values-bs/strings.xml
index bd719ec..adf1333 100644
--- a/java/com/android/dialer/theme/res/values-bs/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bs/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Nepoznato"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefonska govornica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ca/strings.xml b/java/com/android/dialer/theme/res/values-ca/strings.xml
index 0e3ef60..7c51c5b 100644
--- a/java/com/android/dialer/theme/res/values-ca/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ca/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Desconegut"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telèfon públic"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telèfon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-cs/strings.xml b/java/com/android/dialer/theme/res/values-cs/strings.xml
index bf632c5..4b796d3 100644
--- a/java/com/android/dialer/theme/res/values-cs/strings.xml
+++ b/java/com/android/dialer/theme/res/values-cs/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Neznámé"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefonní automat"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-da/strings.xml b/java/com/android/dialer/theme/res/values-da/strings.xml
index 1990184..f4312bd 100644
--- a/java/com/android/dialer/theme/res/values-da/strings.xml
+++ b/java/com/android/dialer/theme/res/values-da/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Ukendt"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Mønttelefon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Opkald"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-de/strings.xml b/java/com/android/dialer/theme/res/values-de/strings.xml
index 5488192..4c1fe34 100644
--- a/java/com/android/dialer/theme/res/values-de/strings.xml
+++ b/java/com/android/dialer/theme/res/values-de/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Unbekannt"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Münztelefon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-el/strings.xml b/java/com/android/dialer/theme/res/values-el/strings.xml
index 82e67d4..da20304 100644
--- a/java/com/android/dialer/theme/res/values-el/strings.xml
+++ b/java/com/android/dialer/theme/res/values-el/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Άγνωστος"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Τηλέφωνο με χρέωση"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Τηλέφωνο"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rAU/strings.xml b/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
index 451f135..9c0650c 100644
--- a/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Unknown"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rGB/strings.xml b/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
index 451f135..9c0650c 100644
--- a/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Unknown"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rIN/strings.xml b/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
index 451f135..9c0650c 100644
--- a/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Unknown"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-es-rUS/strings.xml b/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
index f0397a8..1e6a237 100644
--- a/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Desconocido"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-es/strings.xml b/java/com/android/dialer/theme/res/values-es/strings.xml
index f0397a8..1e6a237 100644
--- a/java/com/android/dialer/theme/res/values-es/strings.xml
+++ b/java/com/android/dialer/theme/res/values-es/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Desconocido"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-et/strings.xml b/java/com/android/dialer/theme/res/values-et/strings.xml
index 13c662f..2af58d5 100644
--- a/java/com/android/dialer/theme/res/values-et/strings.xml
+++ b/java/com/android/dialer/theme/res/values-et/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Tundmatu"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefoniautomaat"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-eu/strings.xml b/java/com/android/dialer/theme/res/values-eu/strings.xml
index 9637ce5..37f15f1 100644
--- a/java/com/android/dialer/theme/res/values-eu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-eu/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Ezezaguna"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefono publikoa"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefonoa"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-fa/strings.xml b/java/com/android/dialer/theme/res/values-fa/strings.xml
index ec03ec1..2fab699 100644
--- a/java/com/android/dialer/theme/res/values-fa/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fa/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"ناشناس"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"تلفن عمومی"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"تلفن"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-fi/strings.xml b/java/com/android/dialer/theme/res/values-fi/strings.xml
index b729ff8..33fc0a0 100644
--- a/java/com/android/dialer/theme/res/values-fi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fi/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Tuntematon"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Maksupuhelin"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Puhelin"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml b/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
index afbf86a..d047c42 100644
--- a/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Inconnu"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Cabine téléphonique"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Téléphone"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-fr/strings.xml b/java/com/android/dialer/theme/res/values-fr/strings.xml
index afbf86a..d047c42 100644
--- a/java/com/android/dialer/theme/res/values-fr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fr/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Inconnu"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Cabine téléphonique"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Téléphone"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-gl/strings.xml b/java/com/android/dialer/theme/res/values-gl/strings.xml
index ad7ee27..e5da314 100644
--- a/java/com/android/dialer/theme/res/values-gl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-gl/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Descoñecido"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-gu/strings.xml b/java/com/android/dialer/theme/res/values-gu/strings.xml
index 0ab9312..764414e 100644
--- a/java/com/android/dialer/theme/res/values-gu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-gu/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"અજાણ્યું"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"પેફોન"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ફોન"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-hi/strings.xml b/java/com/android/dialer/theme/res/values-hi/strings.xml
index 0922eef..af50287 100644
--- a/java/com/android/dialer/theme/res/values-hi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hi/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"अज्ञात"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"पे-फ़ोन"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"फ़ोन"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-hr/strings.xml b/java/com/android/dialer/theme/res/values-hr/strings.xml
index cf314be..2e7cbf0 100644
--- a/java/com/android/dialer/theme/res/values-hr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hr/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Nepoznato"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Javna telefonska govornica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-hu/strings.xml b/java/com/android/dialer/theme/res/values-hu/strings.xml
index b7809fa..51d7e54 100644
--- a/java/com/android/dialer/theme/res/values-hu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hu/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Ismeretlen"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Nyilvános telefon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-hy/strings.xml b/java/com/android/dialer/theme/res/values-hy/strings.xml
index 71fc9f8..353d80b 100644
--- a/java/com/android/dialer/theme/res/values-hy/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hy/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Անհայտ"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Բջջային տերմինալ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Հեռախոս"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-in/strings.xml b/java/com/android/dialer/theme/res/values-in/strings.xml
index 00178c2..d340e6f 100644
--- a/java/com/android/dialer/theme/res/values-in/strings.xml
+++ b/java/com/android/dialer/theme/res/values-in/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Tidak diketahui"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telepon Umum"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telepon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-is/strings.xml b/java/com/android/dialer/theme/res/values-is/strings.xml
index e4af0b0..6c8f9ba 100644
--- a/java/com/android/dialer/theme/res/values-is/strings.xml
+++ b/java/com/android/dialer/theme/res/values-is/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Óþekkt"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Símasjálfsali"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Sími"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-it/strings.xml b/java/com/android/dialer/theme/res/values-it/strings.xml
index a495f51..27a74b1 100644
--- a/java/com/android/dialer/theme/res/values-it/strings.xml
+++ b/java/com/android/dialer/theme/res/values-it/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Sconosciuto"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Cabina telefonica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefono"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-iw/strings.xml b/java/com/android/dialer/theme/res/values-iw/strings.xml
index 1e496f4..664fef6 100644
--- a/java/com/android/dialer/theme/res/values-iw/strings.xml
+++ b/java/com/android/dialer/theme/res/values-iw/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"לא ידוע"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"טלפון ציבורי"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"טלפון"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ja/strings.xml b/java/com/android/dialer/theme/res/values-ja/strings.xml
index 8649c37..809ceb9 100644
--- a/java/com/android/dialer/theme/res/values-ja/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ja/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"不明"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"公衆電話"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ka/strings.xml b/java/com/android/dialer/theme/res/values-ka/strings.xml
index f826768..67bb8ce 100644
--- a/java/com/android/dialer/theme/res/values-ka/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ka/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"უცნობი"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"გადახდის ტელეფონი"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ტელეფონი"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-kk/strings.xml b/java/com/android/dialer/theme/res/values-kk/strings.xml
index a1b7e6d..4fabd85 100644
--- a/java/com/android/dialer/theme/res/values-kk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-kk/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Белгісіз"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Автомат-телефон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-km/strings.xml b/java/com/android/dialer/theme/res/values-km/strings.xml
index 1a880b7..163023c 100644
--- a/java/com/android/dialer/theme/res/values-km/strings.xml
+++ b/java/com/android/dialer/theme/res/values-km/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"មិន​ស្គាល់"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"ទូរស័ព្ទសាធារណៈ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ទូរស័ព្ទ"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-kn/strings.xml b/java/com/android/dialer/theme/res/values-kn/strings.xml
index 3338de3..48e2772 100644
--- a/java/com/android/dialer/theme/res/values-kn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-kn/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"ಅಪರಿಚಿತ"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"ಪೇಫೋನ್"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ಫೋನ್"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ko/strings.xml b/java/com/android/dialer/theme/res/values-ko/strings.xml
index 1f371f9..5a977f9 100644
--- a/java/com/android/dialer/theme/res/values-ko/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ko/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"알 수 없음"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"공중전화"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"휴대전화"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ky/strings.xml b/java/com/android/dialer/theme/res/values-ky/strings.xml
index 6a82f8a..e9283e0 100644
--- a/java/com/android/dialer/theme/res/values-ky/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ky/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Белгисиз"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Таксофон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-lo/strings.xml b/java/com/android/dialer/theme/res/values-lo/strings.xml
index 0f08eed..f9b1200 100644
--- a/java/com/android/dialer/theme/res/values-lo/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lo/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"ບໍ່ຮູ້ຈັກ"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"ຕູ້​ໂທ​ລະ​ສັບ​ສາ​ທາ​ລະ​ນະ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ໂທລະສັບ"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-lt/strings.xml b/java/com/android/dialer/theme/res/values-lt/strings.xml
index ecb5b3f..80ac2ba 100644
--- a/java/com/android/dialer/theme/res/values-lt/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lt/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Nežinomas"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Taksofonas"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefonas"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-lv/strings.xml b/java/com/android/dialer/theme/res/values-lv/strings.xml
index 69e33f8..05bd1eb 100644
--- a/java/com/android/dialer/theme/res/values-lv/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lv/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Nezināms"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Maksas tālrunis"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Tālrunis"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-mk/strings.xml b/java/com/android/dialer/theme/res/values-mk/strings.xml
index 6f97382..4919582 100644
--- a/java/com/android/dialer/theme/res/values-mk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mk/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Непознато"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Говорница"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ml/strings.xml b/java/com/android/dialer/theme/res/values-ml/strings.xml
index 275f2c0..a49bb11 100644
--- a/java/com/android/dialer/theme/res/values-ml/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ml/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"അജ്ഞാതം"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"പണം നൽകി ഉപയോഗിക്കുന്ന ഫോൺ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ഫോണ്‍"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-mn/strings.xml b/java/com/android/dialer/theme/res/values-mn/strings.xml
index ad115d1..2327485 100644
--- a/java/com/android/dialer/theme/res/values-mn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mn/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Тодорхойгүй"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Утас"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-mr/strings.xml b/java/com/android/dialer/theme/res/values-mr/strings.xml
index acab4db..ea6262c 100644
--- a/java/com/android/dialer/theme/res/values-mr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mr/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"अज्ञात"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"सार्वजनिक फोन"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"फोन"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ms/strings.xml b/java/com/android/dialer/theme/res/values-ms/strings.xml
index 0368a66..b0c9804 100644
--- a/java/com/android/dialer/theme/res/values-ms/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ms/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Tidak diketahui"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefon Awam"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-my/strings.xml b/java/com/android/dialer/theme/res/values-my/strings.xml
index 27771ee..abd53db 100644
--- a/java/com/android/dialer/theme/res/values-my/strings.xml
+++ b/java/com/android/dialer/theme/res/values-my/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"အကြောင်းအရာ မသိရှိ"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"ငွေပေးရသည့်ဖုန်း"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ဖုန်း"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-nb/strings.xml b/java/com/android/dialer/theme/res/values-nb/strings.xml
index 3164ab0..52a7d63 100644
--- a/java/com/android/dialer/theme/res/values-nb/strings.xml
+++ b/java/com/android/dialer/theme/res/values-nb/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Ukjent"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefonkiosk"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ne/strings.xml b/java/com/android/dialer/theme/res/values-ne/strings.xml
index 7654d49..ecc566b 100644
--- a/java/com/android/dialer/theme/res/values-ne/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ne/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"अज्ञात"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"पेफोन"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"फोन"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-nl/strings.xml b/java/com/android/dialer/theme/res/values-nl/strings.xml
index b01fecf..c965c71 100644
--- a/java/com/android/dialer/theme/res/values-nl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-nl/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Onbekend"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefooncel"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefoon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-no/strings.xml b/java/com/android/dialer/theme/res/values-no/strings.xml
index 3164ab0..52a7d63 100644
--- a/java/com/android/dialer/theme/res/values-no/strings.xml
+++ b/java/com/android/dialer/theme/res/values-no/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Ukjent"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefonkiosk"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pa/strings.xml b/java/com/android/dialer/theme/res/values-pa/strings.xml
index 2adc680..a0811f8 100644
--- a/java/com/android/dialer/theme/res/values-pa/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pa/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"ਅਗਿਆਤ"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"ਪੇਫੋਨ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ਫੋਨ"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pl/strings.xml b/java/com/android/dialer/theme/res/values-pl/strings.xml
index c62e603..83f27a9 100644
--- a/java/com/android/dialer/theme/res/values-pl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pl/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Nieznane"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Automat telefoniczny"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml b/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
index 14e78b2..55c2b83 100644
--- a/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Desconhecido"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml b/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
index 14e78b2..55c2b83 100644
--- a/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Desconhecido"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pt/strings.xml b/java/com/android/dialer/theme/res/values-pt/strings.xml
index 14e78b2..55c2b83 100644
--- a/java/com/android/dialer/theme/res/values-pt/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Desconhecido"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ro/strings.xml b/java/com/android/dialer/theme/res/values-ro/strings.xml
index 54b95f3..274e035 100644
--- a/java/com/android/dialer/theme/res/values-ro/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ro/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Necunoscut"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefon public"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ru/strings.xml b/java/com/android/dialer/theme/res/values-ru/strings.xml
index 19e1254..3e60702 100644
--- a/java/com/android/dialer/theme/res/values-ru/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ru/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Неизвестно"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Телефон-автомат"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-si/strings.xml b/java/com/android/dialer/theme/res/values-si/strings.xml
index 5e245d4..3de993a 100644
--- a/java/com/android/dialer/theme/res/values-si/strings.xml
+++ b/java/com/android/dialer/theme/res/values-si/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"නොදනී"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"පේෆෝනය"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"දුරකථනය"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sk/strings.xml b/java/com/android/dialer/theme/res/values-sk/strings.xml
index 4b8c01a..53692df 100644
--- a/java/com/android/dialer/theme/res/values-sk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sk/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Neznáme"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefónny automat"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefón"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sl/strings.xml b/java/com/android/dialer/theme/res/values-sl/strings.xml
index 095fa11..d56c399 100644
--- a/java/com/android/dialer/theme/res/values-sl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sl/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Neznano"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefonska govorilnica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sq/strings.xml b/java/com/android/dialer/theme/res/values-sq/strings.xml
index 4682e6c..b60971b 100644
--- a/java/com/android/dialer/theme/res/values-sq/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sq/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"I panjohur"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefon me pagesë"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefoni"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sr/strings.xml b/java/com/android/dialer/theme/res/values-sr/strings.xml
index 37ebb8d..ec732df 100644
--- a/java/com/android/dialer/theme/res/values-sr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sr/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Непознато"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Телефонска говорница"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sv/strings.xml b/java/com/android/dialer/theme/res/values-sv/strings.xml
index 3d584ef..fc16671 100644
--- a/java/com/android/dialer/theme/res/values-sv/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sv/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Okänd"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Telefonautomat"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sw/strings.xml b/java/com/android/dialer/theme/res/values-sw/strings.xml
index faa12a6..4a768ad 100644
--- a/java/com/android/dialer/theme/res/values-sw/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sw/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Haijulikani"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Simu ya kulipia"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Simu"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ta/strings.xml b/java/com/android/dialer/theme/res/values-ta/strings.xml
index 1c5d03d..3ea68fa 100644
--- a/java/com/android/dialer/theme/res/values-ta/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ta/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"தெரியாதவர்"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"கட்டணத் தொலைபேசி"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"மொபைல்"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-te/strings.xml b/java/com/android/dialer/theme/res/values-te/strings.xml
index 4df16b5..30dc1d3 100644
--- a/java/com/android/dialer/theme/res/values-te/strings.xml
+++ b/java/com/android/dialer/theme/res/values-te/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"తెలియదు"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"పే ఫోన్"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ఫోన్"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-th/strings.xml b/java/com/android/dialer/theme/res/values-th/strings.xml
index b00922e..586f622 100644
--- a/java/com/android/dialer/theme/res/values-th/strings.xml
+++ b/java/com/android/dialer/theme/res/values-th/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"ไม่ทราบ"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"โทรศัพท์สาธารณะ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"โทรศัพท์"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-tl/strings.xml b/java/com/android/dialer/theme/res/values-tl/strings.xml
index 84bff0a..812e134 100644
--- a/java/com/android/dialer/theme/res/values-tl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-tl/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Di-kilala"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telepono"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-tr/strings.xml b/java/com/android/dialer/theme/res/values-tr/strings.xml
index a2b9a8d..24a614a 100644
--- a/java/com/android/dialer/theme/res/values-tr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-tr/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Bilinmiyor"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Ankesörlü telefon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-uk/strings.xml b/java/com/android/dialer/theme/res/values-uk/strings.xml
index 31994ba..394166b 100644
--- a/java/com/android/dialer/theme/res/values-uk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-uk/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Невідомий"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Таксофон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ur/strings.xml b/java/com/android/dialer/theme/res/values-ur/strings.xml
index d06d21f..167022d 100644
--- a/java/com/android/dialer/theme/res/values-ur/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ur/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"نامعلوم"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"پے فون"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"فون"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-uz/strings.xml b/java/com/android/dialer/theme/res/values-uz/strings.xml
index b9f8801..eab73eb 100644
--- a/java/com/android/dialer/theme/res/values-uz/strings.xml
+++ b/java/com/android/dialer/theme/res/values-uz/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Noma’lum"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Taksofon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-vi/strings.xml b/java/com/android/dialer/theme/res/values-vi/strings.xml
index 66e2ea4..23bb9dc 100644
--- a/java/com/android/dialer/theme/res/values-vi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-vi/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Không xác định"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Điện thoại công cộng"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Điện thoại"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml b/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
index b311a82..d1a5d9a 100644
--- a/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"未知"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"公用电话"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"电话"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml b/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
index 552720e..17e1305 100644
--- a/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"未知"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"公共電話"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml b/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
index 87b6425..9c4e661 100644
--- a/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"不明"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"公用電話"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-zu/strings.xml b/java/com/android/dialer/theme/res/values-zu/strings.xml
index f5a479a..fd294bd 100644
--- a/java/com/android/dialer/theme/res/values-zu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zu/strings.xml
@@ -18,6 +18,10 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="unknown" msgid="7932659017139013277">"Akwaziwa"</string>
+    <!-- no translation found for unknown_counter (7452889151953704159) -->
+    <skip />
     <string name="payphone" msgid="7106361320283710387">"Ucingo olufakwa imali"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Ifoni"</string>
+    <!-- no translation found for call (3699617769606114168) -->
+    <skip />
 </resources>
diff --git a/java/com/android/dialer/theme/res/values/strings.xml b/java/com/android/dialer/theme/res/values/strings.xml
index 3a954ae..a14693f 100644
--- a/java/com/android/dialer/theme/res/values/strings.xml
+++ b/java/com/android/dialer/theme/res/values/strings.xml
@@ -14,14 +14,22 @@
   ~ limitations under the License
   -->
 
-<resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
   <!-- String used to display calls from unknown numbers in the call log -->
   <string name="unknown">Unknown</string>
 
+  <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
+  <string name="unknown_counter">
+    <xliff:g id="unknown">%s</xliff:g> <xliff:g id="id">%d</xliff:g>
+  </string>
+
   <!-- String used to display calls from pay phone in the call log -->
   <string name="payphone">Payphone</string>
 
   <!-- Title for the activity that dials the phone.  This is the name
        used in the Launcher icon. -->
   <string name="launcherActivityLabel">Phone</string>
+
+  <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
+  <string name="call">Call</string>
 </resources>
diff --git a/java/com/android/dialer/util/PermissionsUtil.java b/java/com/android/dialer/util/PermissionsUtil.java
index 5741e73..466e862 100644
--- a/java/com/android/dialer/util/PermissionsUtil.java
+++ b/java/com/android/dialer/util/PermissionsUtil.java
@@ -30,12 +30,13 @@
 public class PermissionsUtil {
 
   private static final String PERMISSION_PREFERENCE = "dialer_permissions";
+  private static final String CEQUINT_PERMISSION = "com.cequint.ecid.CALLER_ID_LOOKUP";
 
   public static boolean hasPhonePermissions(Context context) {
     return hasPermission(context, permission.CALL_PHONE);
   }
 
-  public static boolean hasContactsPermissions(Context context) {
+  public static boolean hasContactsReadPermissions(Context context) {
     return hasPermission(context, permission.READ_CONTACTS);
   }
 
@@ -51,6 +52,30 @@
     return hasPermission(context, permission.RECORD_AUDIO);
   }
 
+  public static boolean hasCallLogReadPermissions(Context context) {
+    return hasPermission(context, permission.READ_CALL_LOG);
+  }
+
+  public static boolean hasCallLogWritePermissions(Context context) {
+    return hasPermission(context, permission.WRITE_CALL_LOG);
+  }
+
+  public static boolean hasCequintPermissions(Context context) {
+    return hasPermission(context, CEQUINT_PERMISSION);
+  }
+
+  public static boolean hasReadVoicemailPermissions(Context context) {
+    return hasPermission(context, permission.READ_VOICEMAIL);
+  }
+
+  public static boolean hasWriteVoicemailPermissions(Context context) {
+    return hasPermission(context, permission.WRITE_VOICEMAIL);
+  }
+
+  public static boolean hasAddVoicemailPermissions(Context context) {
+    return hasPermission(context, permission.ADD_VOICEMAIL);
+  }
+
   public static boolean hasPermission(Context context, String permission) {
     return ContextCompat.checkSelfPermission(context, permission)
         == PackageManager.PERMISSION_GRANTED;
diff --git a/java/com/android/incallui/AnswerScreenPresenter.java b/java/com/android/incallui/AnswerScreenPresenter.java
index 8116f13..ca34aa6 100644
--- a/java/com/android/incallui/AnswerScreenPresenter.java
+++ b/java/com/android/incallui/AnswerScreenPresenter.java
@@ -180,6 +180,9 @@
 
     @Override
     public void onHandoverToWifiFailure() {}
+
+    @Override
+    public void onInternationalCallOnWifi() {}
   }
 
   private boolean isSmsResponseAllowed(DialerCall call) {
diff --git a/java/com/android/incallui/CallCardPresenter.java b/java/com/android/incallui/CallCardPresenter.java
index 76a5d24..0b3592d 100644
--- a/java/com/android/incallui/CallCardPresenter.java
+++ b/java/com/android/incallui/CallCardPresenter.java
@@ -373,6 +373,9 @@
   @Override
   public void onHandoverToWifiFailure() {}
 
+  @Override
+  public void onInternationalCallOnWifi() {}
+
   /** Handles a change to the child number by refreshing the primary call info. */
   @Override
   public void onDialerCallChildNumberChange() {
@@ -737,7 +740,7 @@
       mInCallScreen.setPrimary(
           new PrimaryInfo(
               number,
-              name,
+              mPrimary.updateNameIfRestricted(name),
               nameIsNumber,
               shouldShowLocationAsLabel(nameIsNumber, mPrimaryContactInfo.shouldShowLocation)
                   ? mPrimaryContactInfo.location
@@ -890,7 +893,7 @@
       mInCallScreen.setSecondary(
           new SecondaryInfo(
               true /* show */,
-              name,
+              mSecondary.updateNameIfRestricted(name),
               nameIsNumber,
               mSecondaryContactInfo.label,
               mSecondary.getCallProviderLabel(),
diff --git a/java/com/android/incallui/CallerInfoUtils.java b/java/com/android/incallui/CallerInfoUtils.java
index 7c14533..5644466 100644
--- a/java/com/android/incallui/CallerInfoUtils.java
+++ b/java/com/android/incallui/CallerInfoUtils.java
@@ -64,7 +64,7 @@
     // TODO: Have phoneapp send a Uri when it knows the contact that triggered this call.
 
     if (info.numberPresentation == TelecomManager.PRESENTATION_ALLOWED) {
-      if (PermissionsUtil.hasContactsPermissions(context)) {
+      if (PermissionsUtil.hasContactsReadPermissions(context)) {
         // Start the query with the number provided from the call.
         LogUtil.d(
             "CallerInfoUtils.getCallerInfoForCall",
diff --git a/java/com/android/incallui/ConferenceParticipantListAdapter.java b/java/com/android/incallui/ConferenceParticipantListAdapter.java
index 72c0fcd..712bdef 100644
--- a/java/com/android/incallui/ConferenceParticipantListAdapter.java
+++ b/java/com/android/incallui/ConferenceParticipantListAdapter.java
@@ -232,11 +232,14 @@
     boolean thisRowCanDisconnect =
         call.can(android.telecom.Call.Details.CAPABILITY_DISCONNECT_FROM_CONFERENCE);
 
+    String name =
+        ContactDisplayUtils.getPreferredDisplayName(
+            contactCache.namePrimary, contactCache.nameAlternative, mContactsPreferences);
+
     setCallerInfoForRow(
         result,
         contactCache.namePrimary,
-        ContactDisplayUtils.getPreferredDisplayName(
-            contactCache.namePrimary, contactCache.nameAlternative, mContactsPreferences),
+        call.updateNameIfRestricted(name),
         contactCache.number,
         contactCache.label,
         contactCache.lookupKey,
diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java
index e1e6990..cc9a8e4 100644
--- a/java/com/android/incallui/InCallActivity.java
+++ b/java/com/android/incallui/InCallActivity.java
@@ -23,6 +23,7 @@
 import android.os.Bundle;
 import android.support.annotation.ColorInt;
 import android.support.annotation.FloatRange;
+import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentTransaction;
@@ -487,6 +488,11 @@
     common.showWifiFailedDialog(call);
   }
 
+  public void onInternationalCallOnWifi(@NonNull DialerCall call) {
+    LogUtil.enterBlock("InCallActivity.onInternationalCallOnWifi");
+    common.showInternationalCallOnWifiDialog(call);
+  }
+
   public void setAllowOrientationChange(boolean allowOrientationChange) {
     if (!allowOrientationChange) {
       setRequestedOrientation(InCallOrientationEventListener.ACTIVITY_PREFERENCE_DISALLOW_ROTATION);
diff --git a/java/com/android/incallui/InCallActivityCommon.java b/java/com/android/incallui/InCallActivityCommon.java
index e6c74b0..4b0a3cd 100644
--- a/java/com/android/incallui/InCallActivityCommon.java
+++ b/java/com/android/incallui/InCallActivityCommon.java
@@ -62,6 +62,8 @@
 import com.android.incallui.call.DialerCall;
 import com.android.incallui.call.DialerCall.State;
 import com.android.incallui.call.TelecomAdapter;
+import com.android.incallui.telecomeventui.InternationalCallOnWifiDialogFragment;
+import com.android.incallui.telecomeventui.InternationalCallOnWifiDialogFragment.Callback;
 import com.android.incallui.wifi.EnableWifiCallingPrompt;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -80,6 +82,7 @@
 
   private static final String TAG_SELECT_ACCOUNT_FRAGMENT = "tag_select_account_fragment";
   private static final String TAG_DIALPAD_FRAGMENT = "tag_dialpad_fragment";
+  private static final String TAG_INTERNATIONAL_CALL_ON_WIFI = "tag_international_call_on_wifi";
 
   @Retention(RetentionPolicy.SOURCE)
   @IntDef({
@@ -107,7 +110,7 @@
   private String dtmfTextToPreopulate;
   @DialpadRequestType private int showDialpadRequest = DIALPAD_REQUEST_NONE;
 
-  private SelectPhoneAccountListener selectAccountListener =
+  private final SelectPhoneAccountListener selectAccountListener =
       new SelectPhoneAccountListener() {
         @Override
         public void onPhoneAccountSelected(
@@ -133,6 +136,25 @@
         }
       };
 
+  private InternationalCallOnWifiDialogFragment.Callback internationalCallOnWifiCallback =
+      new Callback() {
+        @Override
+        public void continueCall(@NonNull String callId) {
+          LogUtil.i("InCallActivityCommon.continueCall", "continuing call with id: %s", callId);
+        }
+
+        @Override
+        public void cancelCall(@NonNull String callId) {
+          DialerCall call = CallList.getInstance().getCallById(callId);
+          if (call == null) {
+            LogUtil.i("InCallActivityCommon.cancelCall", "call destroyed before dialog closed");
+            return;
+          }
+          LogUtil.i("InCallActivityCommon.cancelCall", "disconnecting international call on wifi");
+          call.disconnect();
+        }
+      };
+
   public static void setIntentExtras(
       Intent intent, boolean showDialpad, boolean newOutgoingCall, boolean isForFullScreen) {
     if (showDialpad) {
@@ -210,6 +232,17 @@
       }
     }
 
+    InternationalCallOnWifiDialogFragment existingInternationalFragment =
+        (InternationalCallOnWifiDialogFragment)
+            inCallActivity
+                .getSupportFragmentManager()
+                .findFragmentByTag(TAG_INTERNATIONAL_CALL_ON_WIFI);
+    if (existingInternationalFragment != null) {
+      LogUtil.i(
+          "InCallActivityCommon.onCreate", "international fragment exists attaching callback");
+      existingInternationalFragment.setCallback(internationalCallOnWifiCallback);
+    }
+
     inCallOrientationEventListener = new InCallOrientationEventListener(inCallActivity);
   }
 
@@ -510,6 +543,18 @@
       selectPhoneAccountDialogFragment.dismiss();
       selectPhoneAccountDialogFragment = null;
     }
+
+    InternationalCallOnWifiDialogFragment internationalCallOnWifiFragment =
+        (InternationalCallOnWifiDialogFragment)
+            inCallActivity
+                .getSupportFragmentManager()
+                .findFragmentByTag(TAG_INTERNATIONAL_CALL_ON_WIFI);
+    if (internationalCallOnWifiFragment != null) {
+      LogUtil.i(
+          "InCallActivityCommon.dismissPendingDialogs",
+          "dismissing InternationalCallOnWifiDialogFragment");
+      internationalCallOnWifiFragment.dismiss();
+    }
   }
 
   private static boolean shouldShowDisconnectErrorDialog(@NonNull DisconnectCause cause) {
@@ -584,6 +629,21 @@
     }
   }
 
+  void showInternationalCallOnWifiDialog(@NonNull DialerCall call) {
+    LogUtil.enterBlock("InCallActivityCommon.showInternationalCallOnWifiDialog");
+    if (!InternationalCallOnWifiDialogFragment.shouldShow(inCallActivity)) {
+      LogUtil.i(
+          "InCallActivityCommon.showInternationalCallOnWifiDialog",
+          "InternationalCallOnWifiDialogFragment.shouldShow returned false");
+      return;
+    }
+
+    InternationalCallOnWifiDialogFragment fragment =
+        InternationalCallOnWifiDialogFragment.newInstance(
+            call.getId(), internationalCallOnWifiCallback);
+    fragment.show(inCallActivity.getSupportFragmentManager(), TAG_INTERNATIONAL_CALL_ON_WIFI);
+  }
+
   public void showWifiToLteHandoverToast(DialerCall call) {
     if (call.hasShownWiFiToLteHandoverToast()) {
       return;
diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java
index a5ba31c..9c8120c 100644
--- a/java/com/android/incallui/InCallPresenter.java
+++ b/java/com/android/incallui/InCallPresenter.java
@@ -641,6 +641,14 @@
     }
   }
 
+  @Override
+  public void onInternationalCallOnWifi(@NonNull DialerCall call) {
+    LogUtil.enterBlock("InCallPresenter.onInternationalCallOnWifi");
+    if (mInCallActivity != null) {
+      mInCallActivity.onInternationalCallOnWifi(call);
+    }
+  }
+
   /**
    * Called when there is a change to the call list. Sets the In-Call state for the entire in-call
    * app based on the information it gets from CallList. Dispatches the in-call state to all
diff --git a/java/com/android/incallui/StatusBarNotifier.java b/java/com/android/incallui/StatusBarNotifier.java
index 4fb402c..af541b0 100644
--- a/java/com/android/incallui/StatusBarNotifier.java
+++ b/java/com/android/incallui/StatusBarNotifier.java
@@ -1004,6 +1004,9 @@
     @Override
     public void onHandoverToWifiFailure() {}
 
+    @Override
+    public void onInternationalCallOnWifi() {}
+
     /**
      * Responds to changes in the session modification state for the call by dismissing the status
      * bar notification as required.
diff --git a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
index eaf5b74..77b45ec 100644
--- a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
+++ b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
@@ -20,13 +20,13 @@
 import android.content.SharedPreferences;
 import android.graphics.drawable.Drawable;
 import android.os.Build;
-import android.preference.PreferenceManager;
 import android.support.annotation.NonNull;
 import android.support.annotation.VisibleForTesting;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.ConfigProvider;
 import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.util.DialerUtils;
 import com.android.incallui.util.AccessibilityUtil;
 
 /**
@@ -62,7 +62,7 @@
     if (shouldShowAnswerHint(
         context,
         ConfigProviderBindings.get(context),
-        getDeviceProtectedPreferences(context),
+        DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context),
         Build.PRODUCT)) {
       return new DotAnswerHint(context, puckUpDuration, puckUpDelay);
     }
@@ -77,7 +77,8 @@
   }
 
   public static void increaseAnsweredCount(Context context) {
-    SharedPreferences sharedPreferences = getDeviceProtectedPreferences(context);
+    SharedPreferences sharedPreferences =
+        DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context);
     int answeredCount = sharedPreferences.getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0);
     sharedPreferences.edit().putInt(ANSWERED_COUNT_PREFERENCE_KEY, answeredCount + 1).apply();
   }
@@ -119,12 +120,4 @@
         .getString(CONFIG_ANSWER_HINT_WHITELISTED_DEVICES_KEY, DEFAULT_WHITELISTED_DEVICES_CSV)
         .contains("/" + device + "/");
   }
-
-  private static SharedPreferences getDeviceProtectedPreferences(Context context) {
-    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
-      return PreferenceManager.getDefaultSharedPreferences(context);
-    }
-    return PreferenceManager.getDefaultSharedPreferences(
-        context.createDeviceProtectedStorageContext());
-  }
 }
diff --git a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
index 485a9ae..21154ca 100644
--- a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
+++ b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
@@ -21,10 +21,10 @@
 import android.content.SharedPreferences;
 import android.graphics.drawable.Drawable;
 import android.os.Build.VERSION_CODES;
-import android.preference.PreferenceManager;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import com.android.dialer.common.Assert;
+import com.android.dialer.util.DialerUtils;
 
 /** Decrypt the event payload to be shown if in a specific time range and the key is received. */
 @TargetApi(VERSION_CODES.M)
@@ -35,7 +35,8 @@
   public Drawable loadPayload(@NonNull Context context) {
     Assert.isNotNull(context);
 
-    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
+    SharedPreferences preferences =
+        DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context);
     if (!preferences.getBoolean(PawSecretCodeListener.PAW_ENABLED_WITH_SECRET_CODE_KEY, false)) {
       return null;
     }
diff --git a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
index 6a2c4b4..24fbfc4 100644
--- a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
+++ b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
@@ -140,6 +140,9 @@
   public void onHandoverToWifiFailure() {}
 
   @Override
+  public void onInternationalCallOnWifi() {}
+
+  @Override
   public void onDialerCallSessionModificationStateChange() {}
 
   @Override
diff --git a/java/com/android/incallui/call/CallList.java b/java/com/android/incallui/call/CallList.java
index 0bb1608..34f0cc0 100644
--- a/java/com/android/incallui/call/CallList.java
+++ b/java/com/android/incallui/call/CallList.java
@@ -290,6 +290,10 @@
             "CallList.onCallRemoved", "Removing call not previously disconnected " + call.getId());
       }
     }
+
+    if (!hasLiveCall()) {
+      DialerCall.clearRestrictedCount();
+    }
   }
 
   InCallUiLegacyBindings getLegacyBindings(Context context) {
@@ -723,15 +727,17 @@
      * WiFi
      */
     void onHandoverToWifiFailed(DialerCall call);
+
+    /** Called when the user initiates a call to an international number while on WiFi. */
+    void onInternationalCallOnWifi(@NonNull DialerCall call);
   }
 
   private class DialerCallListenerImpl implements DialerCallListener {
 
-    private final DialerCall mCall;
+    @NonNull private final DialerCall mCall;
 
-    DialerCallListenerImpl(DialerCall call) {
-      Assert.isNotNull(call);
-      mCall = call;
+    DialerCallListenerImpl(@NonNull DialerCall call) {
+      mCall = Assert.isNotNull(call);
     }
 
     @Override
@@ -779,6 +785,14 @@
     }
 
     @Override
+    public void onInternationalCallOnWifi() {
+      LogUtil.enterBlock("DialerCallListenerImpl.onInternationalCallOnWifi");
+      for (Listener listener : mListeners) {
+        listener.onInternationalCallOnWifi(mCall);
+      }
+    }
+
+    @Override
     public void onDialerCallSessionModificationStateChange() {
       for (Listener listener : mListeners) {
         listener.onSessionModificationStateChange(mCall);
diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java
index 3825e6e..acedf41 100644
--- a/java/com/android/incallui/call/DialerCall.java
+++ b/java/com/android/incallui/call/DialerCall.java
@@ -56,6 +56,7 @@
 import com.android.dialer.logging.ContactLookupResult;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
+import com.android.dialer.theme.R;
 import com.android.incallui.audiomode.AudioModeProvider;
 import com.android.incallui.latencyreport.LatencyReport;
 import com.android.incallui.util.TelecomCallUtil;
@@ -92,6 +93,13 @@
   private static int sIdCounter = 0;
 
   /**
+   * A counter used to append to restricted/private/hidden calls so that users can identify them in
+   * a conversation. This value is reset in {@link CallList#onCallRemoved(Context, Call)} when there
+   * are no live calls.
+   */
+  private static int sHiddenCounter;
+
+  /**
    * The unique call ID for every call. This will help us to identify each call and allow us the
    * ability to stitch impressions to calls if needed.
    */
@@ -100,6 +108,7 @@
   private final Call mTelecomCall;
   private final LatencyReport mLatencyReport;
   private final String mId;
+  private final int mHiddenId;
   private final List<String> mChildCallIds = new ArrayList<>();
   private final LogState mLogState = new LogState();
   private final Context mContext;
@@ -243,11 +252,15 @@
               isRemotelyHeld = false;
               update();
               break;
+            case TelephonyManagerCompat.EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC:
+              notifyInternationalCallOnWifi();
+              break;
             default:
               break;
           }
         }
       };
+
   private long mTimeAddedMs;
 
   public DialerCall(
@@ -267,6 +280,11 @@
     mVideoTechManager = new VideoTechManager(this);
 
     updateFromTelecomCall();
+    if (isHiddenNumber() && TextUtils.isEmpty(getNumber())) {
+      mHiddenId = ++sHiddenCounter;
+    } else {
+      mHiddenId = 0;
+    }
 
     if (registerCallback) {
       mTelecomCall.registerCallback(mTelecomCallCallback);
@@ -358,6 +376,13 @@
     }
   }
 
+  public void notifyInternationalCallOnWifi() {
+    LogUtil.enterBlock("DialerCall.notifyInternationalCallOnWifi");
+    for (DialerCallListener dialerCallListener : mListeners) {
+      dialerCallListener.onInternationalCallOnWifi();
+    }
+  }
+
   /* package-private */ Call getTelecomCall() {
     return mTelecomCall;
   }
@@ -526,6 +551,27 @@
     return mId;
   }
 
+  /**
+   * @return name appended with a number if the number is restricted/unknown and the user has
+   *     received more than one restricted/unknown call.
+   */
+  @Nullable
+  public String updateNameIfRestricted(@Nullable String name) {
+    if (name != null && isHiddenNumber() && mHiddenId != 0 && sHiddenCounter > 1) {
+      return mContext.getString(R.string.unknown_counter, name, mHiddenId);
+    }
+    return name;
+  }
+
+  public static void clearRestrictedCount() {
+    sHiddenCounter = 0;
+  }
+
+  private boolean isHiddenNumber() {
+    return getNumberPresentation() == TelecomManager.PRESENTATION_RESTRICTED
+        || getNumberPresentation() == TelecomManager.PRESENTATION_UNKNOWN;
+  }
+
   public boolean hasShownWiFiToLteHandoverToast() {
     return hasShownWiFiToLteHandoverToast;
   }
@@ -1326,7 +1372,6 @@
 
       String phoneNumber = call.getNumber();
       phoneNumber = phoneNumber != null ? phoneNumber : "";
-      phoneNumber = phoneNumber.replaceAll("[^+0-9]", "");
 
       // Insert order here determines the priority of that video tech option
       videoTechs = new ArrayList<>();
diff --git a/java/com/android/incallui/call/DialerCallListener.java b/java/com/android/incallui/call/DialerCallListener.java
index fece103..ed321be 100644
--- a/java/com/android/incallui/call/DialerCallListener.java
+++ b/java/com/android/incallui/call/DialerCallListener.java
@@ -34,4 +34,6 @@
   void onWiFiToLteHandover();
 
   void onHandoverToWifiFailure();
+
+  void onInternationalCallOnWifi();
 }
diff --git a/java/com/android/incallui/contactgrid/ContactGridManager.java b/java/com/android/incallui/contactgrid/ContactGridManager.java
index b3b775b..ed533be 100644
--- a/java/com/android/incallui/contactgrid/ContactGridManager.java
+++ b/java/com/android/incallui/contactgrid/ContactGridManager.java
@@ -22,6 +22,7 @@
 import android.os.SystemClock;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.support.v4.view.ViewCompat;
 import android.telecom.TelecomManager;
 import android.text.TextUtils;
 import android.view.View;
@@ -50,13 +51,13 @@
   // Row 0: [Wi-Fi icon] Calling via Starbucks Wi-Fi
   // Row 0: [Wi-Fi icon] Starbucks Wi-Fi
   // Row 0: Hey Jake, pick up!
-  private ImageView connectionIconImageView;
-  private TextView statusTextView;
+  private final ImageView connectionIconImageView;
+  private final TextView statusTextView;
 
   // Row 1: Jake Peralta        [Contact photo]
   // Row 1: Walgreens
   // Row 1: +1 (650) 253-0000
-  private TextView contactNameTextView;
+  private final TextView contactNameTextView;
   @Nullable private ImageView avatarImageView;
 
   // Row 2: Mobile +1 (650) 253-0000
@@ -65,13 +66,14 @@
   // Row 2: Hanging up
   // Row 2: [Alert sign] Suspected spam caller
   // Row 2: Your emergency callback number: +1 (650) 253-0000
-  private ImageView workIconImageView;
-  private ImageView hdIconImageView;
-  private ImageView forwardIconImageView;
-  private ImageView spamIconImageView;
-  private ViewAnimator bottomTextSwitcher;
-  private TextView bottomTextView;
-  private Chronometer bottomTimerView;
+  private final ImageView workIconImageView;
+  private final ImageView hdIconImageView;
+  private final ImageView forwardIconImageView;
+  private final TextView forwardedNumberView;
+  private final ImageView spamIconImageView;
+  private final ViewAnimator bottomTextSwitcher;
+  private final TextView bottomTextView;
+  private final Chronometer bottomTimerView;
   private int avatarSize;
   private boolean hideAvatar;
   private boolean showAnonymousAvatar;
@@ -89,16 +91,17 @@
     this.avatarImageView = avatarImageView;
     this.avatarSize = avatarSize;
     this.showAnonymousAvatar = showAnonymousAvatar;
-    connectionIconImageView = (ImageView) view.findViewById(R.id.contactgrid_connection_icon);
-    statusTextView = (TextView) view.findViewById(R.id.contactgrid_status_text);
-    contactNameTextView = (TextView) view.findViewById(R.id.contactgrid_contact_name);
-    workIconImageView = (ImageView) view.findViewById(R.id.contactgrid_workIcon);
-    hdIconImageView = (ImageView) view.findViewById(R.id.contactgrid_hdIcon);
-    forwardIconImageView = (ImageView) view.findViewById(R.id.contactgrid_forwardIcon);
-    spamIconImageView = (ImageView) view.findViewById(R.id.contactgrid_spamIcon);
-    bottomTextSwitcher = (ViewAnimator) view.findViewById(R.id.contactgrid_bottom_text_switcher);
-    bottomTextView = (TextView) view.findViewById(R.id.contactgrid_bottom_text);
-    bottomTimerView = (Chronometer) view.findViewById(R.id.contactgrid_bottom_timer);
+    connectionIconImageView = view.findViewById(R.id.contactgrid_connection_icon);
+    statusTextView = view.findViewById(R.id.contactgrid_status_text);
+    contactNameTextView = view.findViewById(R.id.contactgrid_contact_name);
+    workIconImageView = view.findViewById(R.id.contactgrid_workIcon);
+    hdIconImageView = view.findViewById(R.id.contactgrid_hdIcon);
+    forwardIconImageView = view.findViewById(R.id.contactgrid_forwardIcon);
+    forwardedNumberView = view.findViewById(R.id.contactgrid_forwardNumber);
+    spamIconImageView = view.findViewById(R.id.contactgrid_spamIcon);
+    bottomTextSwitcher = view.findViewById(R.id.contactgrid_bottom_text_switcher);
+    bottomTextView = view.findViewById(R.id.contactgrid_bottom_text);
+    bottomTimerView = view.findViewById(R.id.contactgrid_bottom_timer);
 
     contactGridLayout = (View) contactNameTextView.getParent();
     letterTile = new LetterTileDrawable(context.getResources());
@@ -336,9 +339,27 @@
     } else if (!info.isHdAttemptingIconVisible) {
       hdIconImageView.setVisibility(View.GONE);
     }
-    forwardIconImageView.setVisibility(info.isForwardIconVisible ? View.VISIBLE : View.GONE);
     spamIconImageView.setVisibility(info.isSpamIconVisible ? View.VISIBLE : View.GONE);
 
+    if (info.isForwardIconVisible) {
+      forwardIconImageView.setVisibility(View.VISIBLE);
+      forwardedNumberView.setVisibility(View.VISIBLE);
+      if (info.isTimerVisible) {
+        bottomTextSwitcher.setVisibility(View.VISIBLE);
+        if (ViewCompat.getLayoutDirection(contactGridLayout) == ViewCompat.LAYOUT_DIRECTION_LTR) {
+          forwardedNumberView.setText(TextUtils.concat(info.label, " • "));
+        } else {
+          forwardedNumberView.setText(TextUtils.concat(" • ", info.label));
+        }
+      } else {
+        bottomTextSwitcher.setVisibility(View.GONE);
+        forwardedNumberView.setText(info.label);
+      }
+    } else {
+      forwardIconImageView.setVisibility(View.GONE);
+      forwardedNumberView.setVisibility(View.GONE);
+    }
+
     if (info.isTimerVisible) {
       bottomTextSwitcher.setDisplayedChild(1);
       bottomTimerView.setBase(
diff --git a/java/com/android/incallui/contactgrid/res/layout/incall_contactgrid_bottom_row.xml b/java/com/android/incallui/contactgrid/res/layout/incall_contactgrid_bottom_row.xml
index ac37848..c74017e 100644
--- a/java/com/android/incallui/contactgrid/res/layout/incall_contactgrid_bottom_row.xml
+++ b/java/com/android/incallui/contactgrid/res/layout/incall_contactgrid_bottom_row.xml
@@ -20,6 +20,15 @@
       android:id="@id/contactgrid_forwardIcon"
       style="@style/BottomRowIcon"
       android:src="@drawable/quantum_ic_forward_vd_theme_24"/>
+  <TextView
+      android:id="@+id/contactgrid_forwardNumber"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:visibility="gone"
+      android:singleLine="true"
+      android:textAppearance="@style/Dialer.Incall.TextAppearance"
+      tools:gravity="start"
+      tools:text="+1 (650) 253-0000"/>
   <ImageView
       android:id="@+id/contactgrid_spamIcon"
       style="@style/BottomRowIcon"
diff --git a/java/com/android/incallui/legacyblocking/BlockedNumberContentObserver.java b/java/com/android/incallui/legacyblocking/BlockedNumberContentObserver.java
index 33e133d..d774fc3 100644
--- a/java/com/android/incallui/legacyblocking/BlockedNumberContentObserver.java
+++ b/java/com/android/incallui/legacyblocking/BlockedNumberContentObserver.java
@@ -24,6 +24,7 @@
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.AsyncTaskExecutor;
 import com.android.dialer.common.concurrent.AsyncTaskExecutors;
+import com.android.dialer.util.PermissionsUtil;
 import java.util.Objects;
 
 /**
@@ -93,8 +94,13 @@
    */
   public void register() {
     LogUtil.i("BlockedNumberContentObserver.register", null);
-    context.getContentResolver().registerContentObserver(CallLog.CONTENT_URI, true, this);
-    handler.postDelayed(timeoutRunnable, TIMEOUT_MS);
+    if (PermissionsUtil.hasCallLogReadPermissions(context)
+        && PermissionsUtil.hasCallLogWritePermissions(context)) {
+      context.getContentResolver().registerContentObserver(CallLog.CONTENT_URI, true, this);
+      handler.postDelayed(timeoutRunnable, TIMEOUT_MS);
+    } else {
+      LogUtil.w("BlockedNumberContentObserver.register", "no call log read/write permissions.");
+    }
   }
 
   private void unregister() {
diff --git a/java/com/android/incallui/spam/SpamCallListListener.java b/java/com/android/incallui/spam/SpamCallListListener.java
index 7487185..547337e 100644
--- a/java/com/android/incallui/spam/SpamCallListListener.java
+++ b/java/com/android/incallui/spam/SpamCallListListener.java
@@ -23,6 +23,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.drawable.Icon;
+import android.support.annotation.NonNull;
 import android.telecom.DisconnectCause;
 import android.telephony.PhoneNumberUtils;
 import android.text.TextUtils;
@@ -101,6 +102,9 @@
   public void onHandoverToWifiFailed(DialerCall call) {}
 
   @Override
+  public void onInternationalCallOnWifi(@NonNull DialerCall call) {}
+
+  @Override
   public void onDisconnect(DialerCall call) {
     if (!shouldShowAfterCallNotification(call)) {
       return;
diff --git a/java/com/android/incallui/telecomeventui/AndroidManifest.xml b/java/com/android/incallui/telecomeventui/AndroidManifest.xml
new file mode 100644
index 0000000..861b936
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<manifest package="com.android.incallui.telecomeventui"/>
\ No newline at end of file
diff --git a/java/com/android/incallui/telecomeventui/InternationalCallOnWifiDialogFragment.java b/java/com/android/incallui/telecomeventui/InternationalCallOnWifiDialogFragment.java
new file mode 100644
index 0000000..2b602f8
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/InternationalCallOnWifiDialogFragment.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui.telecomeventui;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
+import android.support.v4.app.DialogFragment;
+import android.support.v4.os.UserManagerCompat;
+import android.view.View;
+import android.widget.CheckBox;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+
+/**
+ * Dialog that may be shown when users place an outgoing call to an international number while on
+ * Wifi.
+ *
+ * <p>The android.telephony.event.EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC event is sent when users
+ * attempt to place a call under these circumstances.
+ */
+public class InternationalCallOnWifiDialogFragment extends DialogFragment {
+
+  /**
+   * Returns {@code true} if an {@link InternationalCallOnWifiDialogFragment} should be shown.
+   *
+   * <p>Attempting to show an InternationalCallOnWifiDialogFragment when this method returns {@code
+   * false} will result in an {@link IllegalStateException}.
+   */
+  public static boolean shouldShow(@NonNull Context context) {
+    if (!UserManagerCompat.isUserUnlocked(context)) {
+      LogUtil.i("InternationalCallOnWifiDialogFragment.shouldShow", "user locked, returning false");
+      return false;
+    }
+
+    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
+    boolean shouldShow = preferences.getBoolean(ALWAYS_SHOW_WARNING_PREFERENCE_KEY, true);
+
+    LogUtil.i("InternationalCallOnWifiDialogFragment.shouldShow", "result: %b", shouldShow);
+    return shouldShow;
+  }
+
+  /**
+   * Called in response to user interaction with the {@link InternationalCallOnWifiDialogFragment}.
+   */
+  public interface Callback {
+
+    /** Indicates that the user wishes to proceed with the call represented by the given call id. */
+    void continueCall(@NonNull String callId);
+
+    /** Indicates that the user wishes to cancel the call represented by the given call id. */
+    void cancelCall(@NonNull String callId);
+  }
+
+  /**
+   * Returns a new instance of {@link InternationalCallOnWifiDialogFragment} with the given
+   * callback.
+   *
+   * <p>Prefer this method over the default constructor.
+   */
+  public static InternationalCallOnWifiDialogFragment newInstance(
+      @NonNull String callId, @NonNull Callback callback) {
+    InternationalCallOnWifiDialogFragment fragment = new InternationalCallOnWifiDialogFragment();
+    fragment.setCallback(callback);
+    Bundle args = new Bundle();
+    args.putString(ARG_CALL_ID, Assert.isNotNull(callId));
+    fragment.setArguments(args);
+    return fragment;
+  }
+
+  /**
+   * Key to the preference used to determine if the user wants to see {@link
+   * InternationalCallOnWifiDialogFragment InternationalCallOnWifiDialogFragments}.
+   */
+  @VisibleForTesting
+  static final String ALWAYS_SHOW_WARNING_PREFERENCE_KEY =
+      "ALWAYS_SHOW_INTERNATIONAL_CALL_ON_WIFI_WARNING";
+
+  /** Key in the arguments bundle for call id. */
+  private static final String ARG_CALL_ID = "call_id";
+
+  /**
+   * Callback which will receive information about user interactions with this dialog.
+   *
+   * <p>This is Nullable in the event that the dialog is destroyed by the framework, but doesn't
+   * have a callback reattached. Ideally, the InCallActivity would implement the callback and we
+   * would use FragmentUtils.getParentUnsafe instead of holding onto the callback here, but that's
+   * not possible with the existing InCallActivity/InCallActivityCommon implementation.
+   */
+  @Nullable private Callback callback;
+
+  /**
+   * Sets the callback for this dialog.
+   *
+   * <p>Used to reset the callback after state changes.
+   */
+  public void setCallback(@NonNull Callback callback) {
+    this.callback = Assert.isNotNull(callback);
+  }
+
+  @NonNull
+  @Override
+  public Dialog onCreateDialog(Bundle bundle) {
+    super.onCreateDialog(bundle);
+    LogUtil.enterBlock("InternationalCallOnWifiDialogFragment.onCreateDialog");
+
+    if (!InternationalCallOnWifiDialogFragment.shouldShow(getActivity())) {
+      throw new IllegalStateException(
+          "shouldShow indicated InternationalCallOnWifiDialogFragment should not have showed");
+    }
+
+    View dialogView =
+        View.inflate(getActivity(), R.layout.frag_international_call_on_wifi_dialog, null);
+
+    CheckBox alwaysWarn = dialogView.findViewById(R.id.always_warn);
+
+    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
+    // The default is set to false in this case to ensure that the first time the dialog opens,
+    // the checkbox is unchecked.
+    alwaysWarn.setChecked(preferences.getBoolean(ALWAYS_SHOW_WARNING_PREFERENCE_KEY, false));
+
+    AlertDialog alertDialog =
+        new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme)
+            .setCancelable(false)
+            .setView(dialogView)
+            .setPositiveButton(
+                android.R.string.ok,
+                (dialog, which) -> onPositiveButtonClick(preferences, alwaysWarn.isChecked()))
+            .setNegativeButton(
+                android.R.string.cancel,
+                (dialog, which) -> onNegativeButtonClick(preferences, alwaysWarn.isChecked()))
+            .create();
+
+    alertDialog.setCanceledOnTouchOutside(false);
+    return alertDialog;
+  }
+
+  private void onPositiveButtonClick(@NonNull SharedPreferences preferences, boolean alwaysWarn) {
+    LogUtil.i(
+        "InternationalCallOnWifiDialogFragment.onPositiveButtonClick",
+        "alwaysWarn: %b",
+        alwaysWarn);
+    preferences.edit().putBoolean(ALWAYS_SHOW_WARNING_PREFERENCE_KEY, alwaysWarn).apply();
+
+    // Neither callback nor callId are null in normal circumstances. See comments on callback
+    callback.continueCall(getArguments().getString(ARG_CALL_ID));
+  }
+
+  private void onNegativeButtonClick(@NonNull SharedPreferences preferences, boolean alwaysWarn) {
+    LogUtil.i(
+        "InternationalCallOnWifiDialogFragment.onNegativeButtonClick",
+        "alwaysWarn: %b",
+        alwaysWarn);
+    preferences.edit().putBoolean(ALWAYS_SHOW_WARNING_PREFERENCE_KEY, alwaysWarn).apply();
+
+    // Neither callback nor callId are null in normal circumstances. See comments on callback
+    callback.cancelCall(getArguments().getString(ARG_CALL_ID));
+  }
+}
diff --git a/java/com/android/incallui/telecomeventui/res/layout/frag_international_call_on_wifi_dialog.xml b/java/com/android/incallui/telecomeventui/res/layout/frag_international_call_on_wifi_dialog.xml
new file mode 100644
index 0000000..3d8adcb
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/layout/frag_international_call_on_wifi_dialog.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:paddingTop="25dp"
+    android:paddingStart="25dp"
+    android:paddingEnd="25dp"
+    android:paddingBottom="4dp"
+    android:orientation="vertical">
+
+  <TextView
+      android:id="@+id/details"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_marginBottom="10dp"
+      android:text="@string/details"
+      android:textColor="@color/dialer_primary_text_color"
+      android:textSize="16sp"/>
+
+  <CheckBox
+      android:id="@+id/always_warn"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:buttonTint="@color/dialer_theme_color"
+      android:text="@string/always_warn"
+      android:textColor="@color/dialer_primary_text_color"
+      android:textSize="14sp"/>
+</LinearLayout>
+
diff --git a/java/com/android/incallui/telecomeventui/res/values-af/strings.xml b/java/com/android/incallui/telecomeventui/res/values-af/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-af/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-am/strings.xml b/java/com/android/incallui/telecomeventui/res/values-am/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-am/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ar/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ar/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ar/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-az/strings.xml b/java/com/android/incallui/telecomeventui/res/values-az/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-az/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/telecomeventui/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-be/strings.xml b/java/com/android/incallui/telecomeventui/res/values-be/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-be/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-bg/strings.xml b/java/com/android/incallui/telecomeventui/res/values-bg/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-bg/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-bn/strings.xml b/java/com/android/incallui/telecomeventui/res/values-bn/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-bn/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-bs/strings.xml b/java/com/android/incallui/telecomeventui/res/values-bs/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-bs/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ca/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ca/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ca/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-cs/strings.xml b/java/com/android/incallui/telecomeventui/res/values-cs/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-cs/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-da/strings.xml b/java/com/android/incallui/telecomeventui/res/values-da/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-da/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-de/strings.xml b/java/com/android/incallui/telecomeventui/res/values-de/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-de/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-el/strings.xml b/java/com/android/incallui/telecomeventui/res/values-el/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-el/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-en-rAU/strings.xml b/java/com/android/incallui/telecomeventui/res/values-en-rAU/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-en-rAU/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-en-rGB/strings.xml b/java/com/android/incallui/telecomeventui/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-en-rGB/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-en-rIN/strings.xml b/java/com/android/incallui/telecomeventui/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-en-rIN/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-es-rUS/strings.xml b/java/com/android/incallui/telecomeventui/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-es-rUS/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-es/strings.xml b/java/com/android/incallui/telecomeventui/res/values-es/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-es/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-et/strings.xml b/java/com/android/incallui/telecomeventui/res/values-et/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-et/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-eu/strings.xml b/java/com/android/incallui/telecomeventui/res/values-eu/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-eu/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-fa/strings.xml b/java/com/android/incallui/telecomeventui/res/values-fa/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-fa/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-fi/strings.xml b/java/com/android/incallui/telecomeventui/res/values-fi/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-fi/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-fr-rCA/strings.xml b/java/com/android/incallui/telecomeventui/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-fr-rCA/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-fr/strings.xml b/java/com/android/incallui/telecomeventui/res/values-fr/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-fr/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-gl/strings.xml b/java/com/android/incallui/telecomeventui/res/values-gl/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-gl/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-gu/strings.xml b/java/com/android/incallui/telecomeventui/res/values-gu/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-gu/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-hi/strings.xml b/java/com/android/incallui/telecomeventui/res/values-hi/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-hi/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-hr/strings.xml b/java/com/android/incallui/telecomeventui/res/values-hr/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-hr/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-hu/strings.xml b/java/com/android/incallui/telecomeventui/res/values-hu/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-hu/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-hy/strings.xml b/java/com/android/incallui/telecomeventui/res/values-hy/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-hy/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-in/strings.xml b/java/com/android/incallui/telecomeventui/res/values-in/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-in/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-is/strings.xml b/java/com/android/incallui/telecomeventui/res/values-is/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-is/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-it/strings.xml b/java/com/android/incallui/telecomeventui/res/values-it/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-it/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-iw/strings.xml b/java/com/android/incallui/telecomeventui/res/values-iw/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-iw/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ja/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ja/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ja/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ka/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ka/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ka/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-kk/strings.xml b/java/com/android/incallui/telecomeventui/res/values-kk/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-kk/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-km/strings.xml b/java/com/android/incallui/telecomeventui/res/values-km/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-km/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-kn/strings.xml b/java/com/android/incallui/telecomeventui/res/values-kn/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-kn/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ko/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ko/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ko/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ky/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ky/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ky/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-lo/strings.xml b/java/com/android/incallui/telecomeventui/res/values-lo/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-lo/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-lt/strings.xml b/java/com/android/incallui/telecomeventui/res/values-lt/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-lt/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-lv/strings.xml b/java/com/android/incallui/telecomeventui/res/values-lv/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-lv/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-mk/strings.xml b/java/com/android/incallui/telecomeventui/res/values-mk/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-mk/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ml/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ml/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ml/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-mn/strings.xml b/java/com/android/incallui/telecomeventui/res/values-mn/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-mn/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-mr/strings.xml b/java/com/android/incallui/telecomeventui/res/values-mr/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-mr/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ms/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ms/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ms/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-my/strings.xml b/java/com/android/incallui/telecomeventui/res/values-my/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-my/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-nb/strings.xml b/java/com/android/incallui/telecomeventui/res/values-nb/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-nb/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ne/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ne/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ne/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-nl/strings.xml b/java/com/android/incallui/telecomeventui/res/values-nl/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-nl/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-no/strings.xml b/java/com/android/incallui/telecomeventui/res/values-no/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-no/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-pa/strings.xml b/java/com/android/incallui/telecomeventui/res/values-pa/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-pa/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-pl/strings.xml b/java/com/android/incallui/telecomeventui/res/values-pl/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-pl/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-pt-rBR/strings.xml b/java/com/android/incallui/telecomeventui/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-pt-rBR/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-pt-rPT/strings.xml b/java/com/android/incallui/telecomeventui/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-pt-rPT/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-pt/strings.xml b/java/com/android/incallui/telecomeventui/res/values-pt/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-pt/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ro/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ro/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ro/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ru/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ru/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ru/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-si/strings.xml b/java/com/android/incallui/telecomeventui/res/values-si/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-si/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-sk/strings.xml b/java/com/android/incallui/telecomeventui/res/values-sk/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-sk/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-sl/strings.xml b/java/com/android/incallui/telecomeventui/res/values-sl/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-sl/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-sq/strings.xml b/java/com/android/incallui/telecomeventui/res/values-sq/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-sq/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-sr/strings.xml b/java/com/android/incallui/telecomeventui/res/values-sr/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-sr/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-sv/strings.xml b/java/com/android/incallui/telecomeventui/res/values-sv/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-sv/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-sw/strings.xml b/java/com/android/incallui/telecomeventui/res/values-sw/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-sw/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ta/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ta/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ta/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-te/strings.xml b/java/com/android/incallui/telecomeventui/res/values-te/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-te/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-th/strings.xml b/java/com/android/incallui/telecomeventui/res/values-th/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-th/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-tl/strings.xml b/java/com/android/incallui/telecomeventui/res/values-tl/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-tl/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-tr/strings.xml b/java/com/android/incallui/telecomeventui/res/values-tr/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-tr/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-uk/strings.xml b/java/com/android/incallui/telecomeventui/res/values-uk/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-uk/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ur/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ur/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ur/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-uz/strings.xml b/java/com/android/incallui/telecomeventui/res/values-uz/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-uz/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-vi/strings.xml b/java/com/android/incallui/telecomeventui/res/values-vi/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-vi/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-zh-rCN/strings.xml b/java/com/android/incallui/telecomeventui/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-zh-rCN/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-zh-rHK/strings.xml b/java/com/android/incallui/telecomeventui/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-zh-rHK/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-zh-rTW/strings.xml b/java/com/android/incallui/telecomeventui/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-zh-rTW/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-zu/strings.xml b/java/com/android/incallui/telecomeventui/res/values-zu/strings.xml
new file mode 100644
index 0000000..ce7c482
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-zu/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- no translation found for always_warn (8332929731464707890) -->
+    <skip />
+    <!-- no translation found for details (8642701148762155677) -->
+    <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values/strings.xml b/java/com/android/incallui/telecomeventui/res/values/strings.xml
new file mode 100644
index 0000000..a752e2e
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+
+  <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
+  <string name="always_warn">Show warning every time</string>
+
+  <!-- Main text shown to the user in the dialog -->
+  <string name="details">You are calling an international number and charges may apply.</string>
+
+</resources>
\ No newline at end of file
diff --git a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
index 6086347..b7a960e 100644
--- a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
+++ b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
@@ -495,7 +495,7 @@
   }
 
   private View[] getAllPreviewRelatedViews() {
-    return new View[] {previewRoot, mutePreviewOverlay};
+    return new View[] {previewRoot};
   }
 
   private int getOffsetTop(View view) {
diff --git a/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml b/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml
index 1a2bc24..c672466 100644
--- a/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml
+++ b/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml
@@ -14,7 +14,7 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
@@ -32,7 +32,7 @@
     android:id="@+id/videocall_remote_video_off"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
-    android:layout_centerInParent="true"
+    android:layout_gravity="center"
     android:accessibilityTraversalBefore="@+id/videocall_speaker_button"
     android:drawablePadding="8dp"
     android:drawableTop="@drawable/quantum_ic_videocam_off_white_36"
@@ -71,22 +71,19 @@
       android:visibility="gone"
       android:importantForAccessibility="no"
       tools:visibility="visible"/>
-  </FrameLayout>
 
-  <ImageView
-    android:id="@+id/videocall_video_preview_mute_overlay"
-    android:layout_width="32dp"
-    android:layout_height="32dp"
-    android:layout_alignBottom="@id/videocall_preview_root"
-    android:layout_alignEnd="@id/videocall_preview_root"
-    android:layout_marginBottom="-8dp"
-    android:layout_marginEnd="-8dp"
-    android:background="@drawable/videocall_background_circle_white"
-    android:contentDescription="@string/incall_content_description_muted"
-    android:scaleType="center"
-    android:src="@drawable/quantum_ic_mic_off_black_24"
-    android:visibility="gone"
-    tools:visibility="visible"/>
+    <ImageView
+      android:id="@+id/videocall_video_preview_mute_overlay"
+      android:layout_width="32dp"
+      android:layout_height="32dp"
+      android:layout_gravity="center"
+      android:background="@drawable/videocall_background_circle_white"
+      android:contentDescription="@string/incall_content_description_muted"
+      android:scaleType="center"
+      android:src="@drawable/quantum_ic_mic_off_black_24"
+      android:visibility="gone"
+      tools:visibility="visible"/>
+  </FrameLayout>
 
   <View
     android:id="@+id/videocall_green_screen_background"
@@ -105,4 +102,4 @@
     android:layout_height="wrap_content"
     android:layout_gravity="top"/>
 
-</RelativeLayout>
+</FrameLayout>
diff --git a/java/com/android/incallui/video/impl/res/values-land/styles.xml b/java/com/android/incallui/video/impl/res/values-land/styles.xml
index f60dbd1..a809708 100644
--- a/java/com/android/incallui/video/impl/res/values-land/styles.xml
+++ b/java/com/android/incallui/video/impl/res/values-land/styles.xml
@@ -16,8 +16,7 @@
   -->
 <resources>
   <style name="VideoPreviewHolder">
-    <item name="android:layout_alignParentBottom">true</item>
-    <item name="android:layout_alignParentEnd">true</item>
+    <item name="android:layout_gravity">bottom|end</item>
     <item name="android:layout_width">@dimen/videocall_preview_long</item>
     <item name="android:layout_height">@dimen/videocall_preview_height</item>
     <item name="android:layout_marginBottom">@dimen/videocall_preview_margin_bottom</item>
diff --git a/java/com/android/incallui/video/impl/res/values/styles.xml b/java/com/android/incallui/video/impl/res/values/styles.xml
index 010aca2..f73075f 100644
--- a/java/com/android/incallui/video/impl/res/values/styles.xml
+++ b/java/com/android/incallui/video/impl/res/values/styles.xml
@@ -23,8 +23,7 @@
     <item name="android:stateListAnimator">@animator/disabled_alpha</item>
   </style>
   <style name="VideoPreviewHolder">
-    <item name="android:layout_alignParentBottom">true</item>
-    <item name="android:layout_alignParentStart">true</item>
+    <item name="android:layout_gravity">bottom|start</item>
     <item name="android:layout_width">@dimen/videocall_preview_width</item>
     <item name="android:layout_height">@dimen/videocall_preview_long</item>
     <item name="android:layout_marginBottom">@dimen/videocall_preview_margin_bottom</item>
diff --git a/java/com/android/voicemail/impl/ActivationTask.java b/java/com/android/voicemail/impl/ActivationTask.java
index 91e3695..6e27b50 100644
--- a/java/com/android/voicemail/impl/ActivationTask.java
+++ b/java/com/android/voicemail/impl/ActivationTask.java
@@ -19,11 +19,9 @@
 import android.annotation.TargetApi;
 import android.content.Context;
 import android.content.Intent;
-import android.database.ContentObserver;
 import android.os.Build.VERSION_CODES;
 import android.os.Bundle;
 import android.provider.Settings;
-import android.provider.Settings.Global;
 import android.support.annotation.Nullable;
 import android.support.annotation.WorkerThread;
 import android.telecom.PhoneAccountHandle;
@@ -43,8 +41,6 @@
 import com.android.voicemail.impl.sync.VvmAccountManager;
 import com.android.voicemail.impl.utils.LoggerUtils;
 import java.io.IOException;
-import java.util.HashSet;
-import java.util.Set;
 import java.util.concurrent.CancellationException;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeoutException;
@@ -67,8 +63,6 @@
 
   private static final String EXTRA_MESSAGE_DATA_BUNDLE = "extra_message_data_bundle";
 
-  @Nullable private static DeviceProvisionedObserver sDeviceProvisionedObserver;
-
   private final RetryPolicy mRetryPolicy;
 
   private Bundle mMessageData;
@@ -98,7 +92,7 @@
       // Activation might need information such as system language to be set, so wait until
       // the setup wizard is finished. The data bundle from the SMS will be re-requested upon
       // activation.
-      queueActivationAfterProvisioned(context, phoneAccountHandle);
+      DeviceProvisionedJobService.activateAfterProvisioned(context, phoneAccountHandle);
       return;
     }
 
@@ -285,45 +279,4 @@
             .createForPhoneAccountHandle(phoneAccountHandle);
     return telephonyManager.getServiceState().getState() == ServiceState.STATE_IN_SERVICE;
   }
-
-  private static void queueActivationAfterProvisioned(
-      Context context, PhoneAccountHandle phoneAccountHandle) {
-    if (sDeviceProvisionedObserver == null) {
-      sDeviceProvisionedObserver = new DeviceProvisionedObserver(context);
-      context
-          .getContentResolver()
-          .registerContentObserver(
-              Settings.Global.getUriFor(Global.DEVICE_PROVISIONED),
-              false,
-              sDeviceProvisionedObserver);
-    }
-    sDeviceProvisionedObserver.addPhoneAcountHandle(phoneAccountHandle);
-  }
-
-  private static class DeviceProvisionedObserver extends ContentObserver {
-
-    private final Context mContext;
-    private final Set<PhoneAccountHandle> mPhoneAccountHandles = new HashSet<>();
-
-    private DeviceProvisionedObserver(Context context) {
-      super(null);
-      mContext = context;
-    }
-
-    public void addPhoneAcountHandle(PhoneAccountHandle phoneAccountHandle) {
-      mPhoneAccountHandles.add(phoneAccountHandle);
-    }
-
-    @Override
-    public void onChange(boolean selfChange) {
-      if (isDeviceProvisioned(mContext)) {
-        VvmLog.i(TAG, "device provisioned, resuming activation");
-        for (PhoneAccountHandle phoneAccountHandle : mPhoneAccountHandles) {
-          start(mContext, phoneAccountHandle, null);
-        }
-        mContext.getContentResolver().unregisterContentObserver(sDeviceProvisionedObserver);
-        sDeviceProvisionedObserver = null;
-      }
-    }
-  }
 }
diff --git a/java/com/android/voicemail/impl/AndroidManifest.xml b/java/com/android/voicemail/impl/AndroidManifest.xml
index 8c0d67f..3e512ba 100644
--- a/java/com/android/voicemail/impl/AndroidManifest.xml
+++ b/java/com/android/voicemail/impl/AndroidManifest.xml
@@ -92,6 +92,11 @@
         android:exported="false"/>
 
     <service
+        android:name="com.android.voicemail.impl.DeviceProvisionedJobService"
+        android:permission="android.permission.BIND_JOB_SERVICE"
+        android:exported="false"/>
+
+    <service
         android:name="com.android.voicemail.impl.OmtpService"
         android:permission="android.permission.BIND_VISUAL_VOICEMAIL_SERVICE"
         android:exported="true"
diff --git a/java/com/android/voicemail/impl/DeviceProvisionedJobService.java b/java/com/android/voicemail/impl/DeviceProvisionedJobService.java
new file mode 100644
index 0000000..a0b999d
--- /dev/null
+++ b/java/com/android/voicemail/impl/DeviceProvisionedJobService.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.voicemail.impl;
+
+import android.annotation.TargetApi;
+import android.app.job.JobInfo;
+import android.app.job.JobInfo.TriggerContentUri;
+import android.app.job.JobParameters;
+import android.app.job.JobScheduler;
+import android.app.job.JobService;
+import android.app.job.JobWorkItem;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build.VERSION_CODES;
+import android.provider.Settings;
+import android.provider.Settings.Global;
+import android.telecom.PhoneAccountHandle;
+import com.android.dialer.constants.ScheduledJobIds;
+
+/**
+ * JobService triggered when the setup wizard is completed, and rerun all {@link ActivationTask}
+ * scheduled during the setup.
+ */
+@TargetApi(VERSION_CODES.O)
+public class DeviceProvisionedJobService extends JobService {
+
+  private static final String EXTRA_PHONE_ACCOUNT_HANDLE = "EXTRA_PHONE_ACCOUNT_HANDLE";
+
+  /** Queue the phone account to be reactivated after the setup wizard has completed. */
+  public static void activateAfterProvisioned(
+      Context context, PhoneAccountHandle phoneAccountHandle) {
+    JobInfo jobInfo =
+        new JobInfo.Builder(
+                ScheduledJobIds.VVM_DEVICE_PROVISIONED_JOB,
+                new ComponentName(context, DeviceProvisionedJobService.class))
+            .addTriggerContentUri(
+                new TriggerContentUri(Global.getUriFor(Global.DEVICE_PROVISIONED), 0))
+            // VVM activation must be run as soon as possible to avoid voicemail loss
+            .setTriggerContentMaxDelay(0)
+            .build();
+
+    Intent intent = new Intent();
+    intent.putExtra(EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);
+    context.getSystemService(JobScheduler.class).enqueue(jobInfo, new JobWorkItem(intent));
+  }
+
+  @Override
+  public boolean onStartJob(JobParameters params) {
+    Assert.isTrue(isDeviceProvisioned());
+    VvmLog.i("DeviceProvisionedJobService.onStartJob", "device provisioned");
+    for (JobWorkItem item = params.dequeueWork(); item != null; item = params.dequeueWork()) {
+      PhoneAccountHandle phoneAccountHandle =
+          item.getIntent().getParcelableExtra(EXTRA_PHONE_ACCOUNT_HANDLE);
+      VvmLog.i(
+          "DeviceProvisionedJobService.onStartJob",
+          "restarting activation for " + phoneAccountHandle);
+      ActivationTask.start(this, phoneAccountHandle, null);
+    }
+    return false; // job not running in background
+  }
+
+  @Override
+  public boolean onStopJob(JobParameters params) {
+    return true; // reschedule job
+  }
+
+  private boolean isDeviceProvisioned() {
+    return Settings.Global.getInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 0) == 1;
+  }
+}
diff --git a/java/com/android/voicemail/impl/OmtpService.java b/java/com/android/voicemail/impl/OmtpService.java
index ad24e12..759be4f 100644
--- a/java/com/android/voicemail/impl/OmtpService.java
+++ b/java/com/android/voicemail/impl/OmtpService.java
@@ -27,6 +27,7 @@
 import com.android.dialer.logging.Logger;
 import com.android.voicemail.VoicemailComponent;
 import com.android.voicemail.impl.settings.VisualVoicemailSettingsUtil;
+import com.android.voicemail.impl.sms.LegacyModeSmsHandler;
 import com.android.voicemail.impl.sync.VvmAccountManager;
 
 /** Implements {@link VisualVoicemailService} to receive visual voicemail events */
@@ -74,6 +75,11 @@
       return;
     }
 
+    if (!isUserUnlocked()) {
+      LegacyModeSmsHandler.handle(this, sms);
+      return;
+    }
+
     VvmPackageInstallHandler.scanNewPackages(this);
 
     if (!isServiceEnabled(sms.getPhoneAccountHandle())) {
diff --git a/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java b/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java
index 04b3e73..4a9e433 100644
--- a/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java
+++ b/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java
@@ -107,8 +107,7 @@
 
     mCarrierConfig = getCarrierConfig(telephonyManager);
     mTelephonyConfig =
-        new TelephonyVvmConfigManager(context.getResources())
-            .getConfig(telephonyManager.getSimOperator());
+        new TelephonyVvmConfigManager(context).getConfig(telephonyManager.getSimOperator());
 
     mVvmType = getVvmType();
     mProtocol = VisualVoicemailProtocolFactory.create(mContext.getResources(), mVvmType);
diff --git a/java/com/android/voicemail/impl/TelephonyVvmConfigManager.java b/java/com/android/voicemail/impl/TelephonyVvmConfigManager.java
index 04012c9..b4def2f 100644
--- a/java/com/android/voicemail/impl/TelephonyVvmConfigManager.java
+++ b/java/com/android/voicemail/impl/TelephonyVvmConfigManager.java
@@ -16,11 +16,12 @@
 
 package com.android.voicemail.impl;
 
-import android.content.res.Resources;
+import android.content.Context;
 import android.os.PersistableBundle;
 import android.support.annotation.Nullable;
 import android.support.annotation.VisibleForTesting;
 import android.util.ArrayMap;
+import com.android.dialer.common.ConfigProviderBindings;
 import com.android.voicemail.impl.utils.XmlUtils;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -38,22 +39,24 @@
 
   private static final String TAG_PERSISTABLEMAP = "pbundle_as_map";
 
-  static final String KEY_MCCMNC = "mccmnc";
+  @VisibleForTesting static final String KEY_MCCMNC = "mccmnc";
+
+  private static final String KEY_FEATURE_FLAG_NAME = "feature_flag_name";
 
   private static Map<String, PersistableBundle> sCachedConfigs;
 
   private final Map<String, PersistableBundle> mConfigs;
 
-  public TelephonyVvmConfigManager(Resources resources) {
+  public TelephonyVvmConfigManager(Context context) {
     if (sCachedConfigs == null) {
-      sCachedConfigs = loadConfigs(resources.getXml(R.xml.vvm_config));
+      sCachedConfigs = loadConfigs(context, context.getResources().getXml(R.xml.vvm_config));
     }
     mConfigs = sCachedConfigs;
   }
 
   @VisibleForTesting
-  TelephonyVvmConfigManager(XmlPullParser parser) {
-    mConfigs = loadConfigs(parser);
+  TelephonyVvmConfigManager(Context context, XmlPullParser parser) {
+    mConfigs = loadConfigs(context, parser);
   }
 
   @Nullable
@@ -64,7 +67,7 @@
     return mConfigs.get(mccMnc);
   }
 
-  private static Map<String, PersistableBundle> loadConfigs(XmlPullParser parser) {
+  private static Map<String, PersistableBundle> loadConfigs(Context context, XmlPullParser parser) {
     Map<String, PersistableBundle> configs = new ArrayMap<>();
     try {
       ArrayList list = readBundleList(parser);
@@ -73,6 +76,13 @@
           throw new IllegalArgumentException("PersistableBundle expected, got " + object);
         }
         PersistableBundle bundle = (PersistableBundle) object;
+
+        if (bundle.containsKey(KEY_FEATURE_FLAG_NAME)
+            && !ConfigProviderBindings.get(context)
+                .getBoolean(bundle.getString(KEY_FEATURE_FLAG_NAME), false)) {
+          continue;
+        }
+
         String[] mccMncs = bundle.getStringArray(KEY_MCCMNC);
         if (mccMncs == null) {
           throw new IllegalArgumentException("MCCMNC is null");
diff --git a/java/com/android/voicemail/impl/res/xml/vvm_config.xml b/java/com/android/voicemail/impl/res/xml/vvm_config.xml
index 230d40f..daba3d5 100644
--- a/java/com/android/voicemail/impl/res/xml/vvm_config.xml
+++ b/java/com/android/voicemail/impl/res/xml/vvm_config.xml
@@ -23,6 +23,30 @@
   </pbundle_as_map>
 
   <pbundle_as_map>
+    <!-- Orange Belgium -->
+    <string name="feature_flag_name">vvm_carrier_flag_20610</string>
+    <string-array name="mccmnc">
+      <item value="20610"/>
+    </string-array>
+
+    <int
+        name="vvm_port_number_int"
+        value="0"/>
+    <string name="vvm_destination_number_string">8082</string>
+    <string-array name="carrier_vvm_package_name_string_array">
+      <item value="com.orange.vvm"/>
+    </string-array>
+    <string name="vvm_type_string">vvm_type_omtp</string>
+    <boolean
+        name="vvm_cellular_data_required_bool"
+        value="true"/>
+    <string-array name="vvm_disabled_capabilities_string_array">
+      <!-- b/32365569 -->
+      <item value="STARTTLS"/>
+    </string-array>
+  </pbundle_as_map>
+
+  <pbundle_as_map>
     <!-- Orange France -->
     <string-array name="mccmnc">
       <item value="20801"/>
@@ -47,6 +71,30 @@
   </pbundle_as_map>
 
   <pbundle_as_map>
+    <!-- Orange Luxembourg -->
+    <string name="feature_flag_name">vvm_carrier_flag_20610</string>
+    <string-array name="mccmnc">
+      <item value="27099"/>
+    </string-array>
+
+    <int
+        name="vvm_port_number_int"
+        value="0"/>
+    <string name="vvm_destination_number_string">64085</string>
+    <string-array name="carrier_vvm_package_name_string_array">
+      <item value="com.orange.vvm"/>
+    </string-array>
+    <string name="vvm_type_string">vvm_type_omtp</string>
+    <boolean
+        name="vvm_cellular_data_required_bool"
+        value="true"/>
+    <string-array name="vvm_disabled_capabilities_string_array">
+      <!-- b/32365569 -->
+      <item value="STARTTLS"/>
+    </string-array>
+  </pbundle_as_map>
+
+  <pbundle_as_map>
     <!-- T-Mobile USA-->
     <string-array name="mccmnc">
       <item value="310160"/>
@@ -86,6 +134,22 @@
   </pbundle_as_map>
 
   <pbundle_as_map>
+    <!-- Telus Canada -->
+    <string name="feature_flag_name">vvm_carrier_flag_302220</string>
+    <string-array name="mccmnc">
+      <item value="302220"/>
+    </string-array>
+    <int
+        name="vvm_port_number_int"
+        value="5499"/>
+    <string name="vvm_destination_number_string">7723</string>
+    <string name="vvm_type_string">vvm_type_omtp</string>
+    <boolean
+        name="vvm_cellular_data_required_bool"
+        value="true"/>
+  </pbundle_as_map>
+
+  <pbundle_as_map>
     <!-- Verizon USA -->
     <string-array name="mccmnc">
       <item value="310004"/>
diff --git a/java/com/android/voicemail/impl/scheduling/TaskExecutor.java b/java/com/android/voicemail/impl/scheduling/TaskExecutor.java
index 84dc1db..e3b718e 100644
--- a/java/com/android/voicemail/impl/scheduling/TaskExecutor.java
+++ b/java/com/android/voicemail/impl/scheduling/TaskExecutor.java
@@ -193,13 +193,13 @@
   /** Should attempt to run the next task when a task has finished or been added. */
   private boolean taskAutoRunDisabledForTesting = false;
 
+  /** Handles execution of the background task in teh worker thread. */
   @VisibleForTesting
   final class WorkerThreadHandler extends Handler {
 
     public WorkerThreadHandler(Looper looper) {
       super(looper);
     }
-
     @Override
     @WorkerThread
     public void handleMessage(Message msg) {
@@ -218,6 +218,7 @@
     }
   }
 
+  /** Handles completion of the background task in the main thread. */
   @VisibleForTesting
   final class MainThreadHandler extends Handler {
 
@@ -233,6 +234,11 @@
       getTasks().remove(task);
       task.onCompleted();
       isWorkerThreadBusy = false;
+      if (!isJobRunning() || isTerminating()) {
+        // TaskExecutor was terminated when the task is running in background, don't need to run the
+        // next task or terminate again
+        return;
+      }
       maybeRunNextTask();
     }
   }
@@ -290,6 +296,7 @@
   @MainThread
   private void maybeRunNextTask() {
     Assert.isMainThread();
+
     if (isWorkerThreadBusy) {
       return;
     }
diff --git a/java/com/android/voicemail/impl/scheduling/TaskReceiver.java b/java/com/android/voicemail/impl/scheduling/TaskReceiver.java
index 00d36d0..e78dcf7 100644
--- a/java/com/android/voicemail/impl/scheduling/TaskReceiver.java
+++ b/java/com/android/voicemail/impl/scheduling/TaskReceiver.java
@@ -49,6 +49,7 @@
     for (Intent intent : deferredBroadcasts) {
       context.sendBroadcast(intent);
     }
+    deferredBroadcasts.clear();
   }
 
   @Override
@@ -68,13 +69,13 @@
         deferredBroadcasts.add(intent);
         return;
       }
-      Task task = Tasks.createTask(context, intent.getExtras());
+      Task task = Tasks.createTask(context.getApplicationContext(), intent.getExtras());
       taskExecutor.addTask(task);
     } else {
       VvmLog.i(TAG, "scheduling new job");
       List<Bundle> taskList = new ArrayList<>();
       taskList.add(intent.getExtras());
-      TaskSchedulerJobService.scheduleJob(context, taskList, 0, true);
+      TaskSchedulerJobService.scheduleJob(context.getApplicationContext(), taskList, 0, true);
     }
   }
 }
diff --git a/java/com/android/voicemail/impl/scheduling/TaskSchedulerJobService.java b/java/com/android/voicemail/impl/scheduling/TaskSchedulerJobService.java
index 9bfce00..107234e 100644
--- a/java/com/android/voicemail/impl/scheduling/TaskSchedulerJobService.java
+++ b/java/com/android/voicemail/impl/scheduling/TaskSchedulerJobService.java
@@ -23,9 +23,11 @@
 import android.app.job.JobService;
 import android.content.ComponentName;
 import android.content.Context;
+import android.content.SharedPreferences;
 import android.os.Build.VERSION_CODES;
 import android.os.Bundle;
 import android.os.Parcelable;
+import android.preference.PreferenceManager;
 import android.support.annotation.MainThread;
 import com.android.dialer.constants.ScheduledJobIds;
 import com.android.voicemail.impl.Assert;
@@ -41,11 +43,28 @@
 
   private static final String EXTRA_TASK_EXTRAS_ARRAY = "extra_task_extras_array";
 
+  private static final String EXTRA_JOB_ID = "extra_job_id";
+
+  private static final String EXPECTED_JOB_ID =
+      "com.android.voicemail.impl.scheduling.TaskSchedulerJobService.EXPECTED_JOB_ID";
+
+  private static final String NEXT_JOB_ID =
+      "com.android.voicemail.impl.scheduling.TaskSchedulerJobService.NEXT_JOB_ID";
+
   private JobParameters jobParameters;
 
   @Override
   @MainThread
   public boolean onStartJob(JobParameters params) {
+    int jobId = params.getTransientExtras().getInt(EXTRA_JOB_ID);
+    int expectedJobId =
+        PreferenceManager.getDefaultSharedPreferences(this).getInt(EXPECTED_JOB_ID, 0);
+    if (jobId != expectedJobId) {
+      VvmLog.e(
+          TAG, "Job " + jobId + " is not the last scheduled job " + expectedJobId + ", ignoring");
+      return false; // nothing more to do. Job not running in background.
+    }
+    VvmLog.i(TAG, "starting " + jobId);
     jobParameters = params;
     TaskExecutor.createRunningInstance(this);
     TaskExecutor.getRunningInstance()
@@ -97,6 +116,13 @@
       jobScheduler.cancel(ScheduledJobIds.VVM_TASK_SCHEDULER_JOB);
     }
     Bundle extras = new Bundle();
+    int jobId = createJobId(context);
+    extras.putInt(EXTRA_JOB_ID, jobId);
+    PreferenceManager.getDefaultSharedPreferences(context)
+        .edit()
+        .putInt(EXPECTED_JOB_ID, jobId)
+        .apply();
+
     extras.putParcelableArray(
         EXTRA_TASK_EXTRAS_ARRAY, pendingTasks.toArray(new Bundle[pendingTasks.size()]));
     JobInfo.Builder builder =
@@ -112,7 +138,7 @@
       VvmLog.i(TAG, "running job instantly.");
     }
     jobScheduler.schedule(builder.build());
-    VvmLog.i(TAG, "job scheduled");
+    VvmLog.i(TAG, "job " + jobId + " scheduled");
   }
 
   /**
@@ -143,4 +169,11 @@
     }
     return result;
   }
+
+  private static int createJobId(Context context) {
+    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+    int jobId = sharedPreferences.getInt(NEXT_JOB_ID, 0);
+    sharedPreferences.edit().putInt(NEXT_JOB_ID, jobId + 1).apply();
+    return jobId;
+  }
 }